【Описание проблемы】
Мы часто видим некоторые примеры прокрутки, такие как содержание веб -страницы в браузере UC. Когда есть много контента, разумно использовать прокрутку страниц для отображения. На рисунке в холсте избыточный контент усечен. Как реализовать дисплей на прокрутке?
【принцип】
В Javame существует функция преобразования координат. Когда соответствующее событие ключа запускается, мы позволяем ему отображать соответствующую страницу и прокручивать полос прокрутки в соответствующую позицию.
【Список кодов】
Showhelp.javapack Com.token.view; . Голова; Верно); 0; , "," Return "); Отображение страницы; /n " +" Страница прокрутки; Страница прокрутки; Страница прокрутки; Прокрутить плавник; Прокрутить пейдж Прокрутить пейдж Прокрутить подключение к пейджике; Длина*ft.gethe ight ()/(height-head.menuheight-menu.menuheight-2*Margin) +1; *ft.getheight (); .menuheight+Margin, ширина, BodyHeight); , i*ft.getheight () +Head.menuheight +Margin, Graphics.top | Graphics.left); System.out.println (graphics.gettranslatey ()); Head.menuheight, 2, Barheight); KeyCode) {//system.out .Eventid.event_main_screen, Args); Index> 0) {CurrentPageindex-- /dir = 0;
* Пожалуйста, обратитесь к сериализации Javame (3) для Uicontroller - также поговорите о шаблоне дизайна MVC, поэтому я не буду повторять ее здесь.
【Анализировать】
1 строковая разделение
String info_wrap1 [] = stringdealmethod.format (info, width-15, ft);
Для получения подробной информации, пожалуйста, см. Javame Serialization (4) - Текст автоматической обертывания.
2 Избегайте усечения слов
Как нарисовать целую линию текста в указанной области без усечения текста из-за изменений в высоте шрифта или экрана, что приводит к тому, что текст имеет «полуочищенные слова»?
BodyHeight = ((int) (height head.menuheight-menu.menuheight) /ft.getheight ())*ft.getheight ();
После вышеуказанной обработки высота корпуса высоты площади прокрутки всегда будет целым числом, кратно от высоты шрифта, так что вышеупомянутая задача усечения слов не возникнет.
3 Нарисуйте текст
для (int i = 0; i <info_wrap1.length; i ++) {graphics.drawstring (info_wrap1 [i], 5, i * ft.getheight ()+head.menuheight+margin, graphics.to p | graphics.left) ;
4 координатная трансформация
graphics.cliprect (0, Head.menuheight+Margin, ширина, BodyHeight);
После того, как текст нарисован, преобразуйте координаты назад.
graphics.translate (0, -dir*currentPageIndex*bodyHeight);
5 Нарисуйте полосы прокрутки
Private void Drawscrollbar () {int barheight = height-head.menuheight-menu.menuheight; Color. Selectbg);
6 Обработка событий
Когда обнаруживается событие нажатия клавиши, выполняется операция поворота страницы.
Защищенный void -keepressed (int keycode) {//system.out.println(keycode); .hondleevent (uicontroller.eventid.event_main_screen, Args); 1; } else {// dir = 0;
Этот пример метод может адаптивно обнаружить ширину и длину экрана и нанести на пневмацию текста в зависимости от размера шрифта и отображать его прокрутку.
Эффект отображения прокрутки изображений