Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прорисовка строки, строка не умещается в дисплей 
:(
    Опции темы
bibmaster
Дата 27.9.2007, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.2.2007

Репутация: нет
Всего: нет



У меня к вам есть небольшой вопрос по поводу прорисовки строки...Дело в том,что при прорисовке строки указываются координаты ее положения, но в случае, когда ширина дисплея не позволяет вместить всю длину строки,часть ее теряется за краем дисплея.Подскажите пожалуйста как можно реализовать переброс части строки на определенное количество px вниз.Может кто нибудь уже реализовывал подобный метод и может подбросить пример в исходниках...Буду весьма благодарен! Заранее спасибо!
Можно отправить на [email protected]   smile     smile 
PM MAIL   Вверх
SatanClaus
Дата 27.9.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.6.2007

Репутация: 3
Всего: 3



Проще пареной репы  smile 
Код

    private void drawString(Graphics g, char[] symbol, int length){
        if ((length == 1) && (symbol[length-1] == '|')){    // Символ '|' - это перенос строки
            x = indentation / 2;   // indentation/2 - отступ с боков
            y += g.getFont().getHeight();
        } else {

            word_length = g.getFont().charsWidth(symbol, 0, length);
            while (word_length > (Setting.SCREEN_WIDTH - x - indentation / 2)){  // - left_side_indentation
                x = indentation / 2;
                y += g.getFont().getHeight();
            }
//     Далее у меня была проверка: Если выходит сверху и снизу за пределы экрана, тогда не 
//     прорисовывать
//            if ((y < Setting.SCREEN_HEIGHT - g.getFont().getHeight() - down_indentation - button_height)
// && (y >= 10 + Setting.HEIGHT_STRELKA_DOWN))
                g.drawChars(symbol, 0, length, x, y, Graphics.LEFT | Graphics.TOP);
            x += word_length;
        }
    }
...
        // Далее моя строка str просто разбивается на отдельные слова
...
        words.setLength(0);  // words у меня типа StringBuffer
        char CHAR;
        for (int i = 0; i < str.length(); i++){
            CHAR = str.charAt(i);                 // Оптимизируем char CHAR = str.charAt(i);
            if ((CHAR!=' ') && (CHAR!=',') && (CHAR!='.') && (CHAR!='|')){
                words.append(str.charAt(i));
            } else {
                if (((show_state == BREAST_TYPE) || (show_state == MASSAGE_TYPE)) && (CHAR =='|')){
                    g.setFont(font1);
                }
                words.append(str.charAt(i));
                words.getChars(0, words.length(), symbols, 0);
                drawString(g, symbols, words.length());                      // Вызываем процедурку, ту что выше. 
                                                                                                     // Рисуем слово
                words.setLength(0);
            }
        }
...

PM MAIL   Вверх
bibmaster
Дата 1.10.2007, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.2.2007

Репутация: нет
Всего: нет



 можно пожалуйста полный код, А То я чтото ни фига не понял!!!!! И про | тоже...откуда я знаю где ее ставить....Надо ч тоб код сам считал длину слова и решал,если влазиет в остаток места по ширине то рисуем,  если нет , то перекидываем на 20 пикселей вниз....А как ЭТО БЛИН СДЕЛАТЬ!!!!!!!
PM MAIL   Вверх
javastic
Дата 3.10.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Код сам ничего сделать не может, ты ему говоришь как. Тут задача алгоритма прорисовки, каждый делает своим способом. Ты сделай что-нибудь, а если не получится, то мы тебе поможем. Для старта: Ты можешь узнать высоту и ширину экрана, а так же размер шрифта. Вычисляй и эксперементируй.

Это сообщение отредактировал(а) javastic - 3.10.2007, 09:10


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
bibmaster
Дата 3.10.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.2.2007

Репутация: нет
Всего: нет



А вот в том то и дело...КАК УЗНАТЬ КАКУЮ ДЛИНУ В ПИКСЕЛЯХ ЗАНИМАЕТ МОЯ СТРОКА,СЛОВО,В конце концов БУКВА? КАК реализовать то, что если вся не вмещается, ее обрезать на том участке который вмещается, а остаток сбрасывать ниже...А если она и по высоте вся не влезла? Как тогда провернуть дисплей вниз? Вот что меня интересует.....Может у кого нибудь есть рабочие примеры? А то так, на пальцах я ничего не пойму....Вот есть допустим приложение под названием Sms BOX...Как они замутили это????? Вообще люди, кто нибудь знает, есть в сети НОРМАЛЬНЫЕ (т.е.) рабочие исходники мобильных приложений????? А то всякой порнухи навалом, а полезных вещей не фига нет блин!!!
PM MAIL   Вверх
W0LF
Дата 3.10.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Цитата(bibmaster @  3.10.2007,  10:30 Найти цитируемый пост)
КАК УЗНАТЬ КАКУЮ ДЛИНУ В ПИКСЕЛЯХ ЗАНИМАЕТ МОЯ СТРОКА,СЛОВО

Цитата

javax.microedition.lcdui.Font
 int  stringWidth(String str)
          Gets the total advance width for showing the specified String in this Font.




--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
javastic
Дата 6.10.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



bibmaster, вот Wolf тебе подсказал. Начинай делать, а там мы тебе поможем. И не забудь код выкладывать. Сразу въедешь в тему.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.