Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Вывод цветного текста


Автор: nerezus 3.1.2007, 13:04
Надо использовать цветное поле, на нем написать цветной текст и разместить картинку.

Сначала хотел использовать  g.drawString("Hello!", X(0), Y(0), 0); из класса, расширяющего Canvas, но возникли проблемы:
текст не переносится, нету прокрутки.

Что посоветуете использовать?

И еще желательно, чтобы было FullScreen, т.к. у Canvas снизу под мееню остается место, а на некоторых мобилах - сверху под название.

Автор: W0LF 3.1.2007, 13:34
Цитата

текст не переносится, нету прокрутки.

О какой прокрутке идет речь?
Ты setColor пробовал устанавливать?
Код

g.setColor(int red, int green, int blue);
g.drawRect(int x, int y, int width, int height);
g.setColor(int red2, int green2, int blue2);
g.drawString("Hello!", X(0), Y(0), 0);
try{
    Image myImage = Image.createImage(String name);
}catch(IOException ioe){
    g.setColor(int red3, int green3, int blue3);
    g.drawString("Error by creating image", X(1), Y(1), 1);
}
g.drawImage(myImage, int x, int y, int anchor) ;

Цитата

И еще желательно, чтобы было FullScreen

MIDP 2.0 - setFullScreenMode(boolean mode). Но вроде как не все девайсы нормально с этим работают. Вот у нокии есть свои апи для работы с полным экраном. Сейчас не помню

Автор: nerezus 3.1.2007, 16:16
про нокиевские FullCanvas слышал, но у меня эмулятор нокии не держит беспроводные API =\
Попрробую этой ночью скачать эмуль поновее....

Цитата

О какой прокрутке идет речь?
 Текст не поместится на 1 экране.... но это руками то еще можно сделать =)

Цитата

g.drawString("Hello!", X(0), Y(0), 0);
 Вот ей сейчас и работаю. Но текст не переносится =\

Автор: W0LF 3.1.2007, 17:11
Цитата

Вот ей сейчас и работаю. Но текст не переносится =\ 

Не понимаю smile - 
Чем работаешь и куда должен переноситься текст?

Цитата

но это руками то еще можно сделать =)

В этой твоей прокрутке не вижу ничего сложного.

Автор: nerezus 3.1.2007, 17:30
Цитата

Чем работаешь и куда должен переноситься текст?
 ну при drawString() длинный текст вылезает за правую границу экрана, а хотелось бы, чтобы он переносился...

Автор: W0LF 3.1.2007, 17:58
тю smile
Код

javax.microedition.lcdui.Font
     stringWidth(String str) 


Код

Font fnt = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN,Font.SIZE_SMALL);
g.setFont(fnt);
String s = "Hello, WORLD";
if ( fnt.stringWidth(s) > getWidth()){
     s = "Hello, \n WORLD"
}
g.drawString(s, X(0), Y(0), 0);

Это так, быстрые наброски. Алгоритм переноса уж сам придумаешь

Добавлено @ 18:05 
Цитата

"Hello, \n WORLD"

гы smile) так не прокатит - "\n"
просто тогда уже выделять сабстринги и выводить их отдельно по другим координатам y

Автор: nerezus 3.1.2007, 19:29
спасибо, сейчас буду реализовывать )

Автор: Samuil 3.1.2007, 22:56
Под Nokia так: import com.nokia.mid.ui.FullCanvas;
Код

public class draw extends FullCanvas{
и т.д.
}

Автор: javastic 4.1.2007, 16:18
nerezus, текст нужно переносить самому, отталкиваясь от шрифта, ширины и высоты экрана и длинны текста.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)