![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
newinfo2008 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 4.1.2008 Где: Саратовская облас ть, г. Ершов Репутация: нет Всего: нет |
Привет всем.
Я лазил по форуму, н омногое не понял как это сделать. Есть канва, на ней пользователь рисует, но например когда хочется переключить инструмент, то надо открывать новое окно, чтобы выбрать инструмент рисования, а когда возвращается пользователь на экран с канвой, то результаты прошлого его рисования затираются. Вопрос, что можно сделать, чтобы результаты сохранились и отобразились на экране как они были до переключения окна? Разъясните пожалуйста кодом подробным кто как делает. Буду очень благодарен. |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Обычно, то что ты просишь, не нужно... так как канвас почти всегда нужно перерисовать заново.
Я обычно перед перерисовкой полностью очищаю экран (Graphics.fillRect(0,0, screenWidth, screenHeight);) и после этого вывожу заново все что должно быть на экране. Но если ты все же хочешь знать, как сделать чтобы изображение экрана сохранялось, то вот так:
Код не идеальный, и скорее всего я бы не стал его использовать в программе, но идею того как использовать двойную буферизацию тут можно почерпнуть. Кстати, к чему это я про двойную буферизацию: Ответ на вопрос:
Использовать двойную буферизацию (ну или какой-то буфер для рисования в него). |
||||
|
|||||
newinfo2008 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 4.1.2008 Где: Саратовская облас ть, г. Ершов Репутация: нет Всего: нет |
eugine_s,
Спасибо, я все-таки ещё покапался в инете и нашел про двойную буфферизацию ![]() Код, который ты привел, у меня примерно такой же получился. у меня все в пейнте это запихано просто напросто, вроде работает ![]() Спасибо, за мгновенную помощь ![]() |
|||
|
||||
Majesty |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 20.3.2005 Где: Almaty, Kazakhsta n Репутация: нет Всего: нет |
eugine_s, а нельзя просто завести экземпляр Graphics и скидывать в него по мере рисования текущее состояние из paint'а? Не очень разбираюсь в этой кухне, потому и спрашиваю
![]() |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
||||
|
||||
Dummy |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Ну, вообще, где-то в недрах JVM он обычно бывает, конечно, но разработчику мидлета недоступен ![]()
Конечно, этим методом следует пользоваться аккуратно и использовать либо в внутри [Game]Canvas.paint(), либо хотя бы использовать Display.callSerially(), дабы синхронизировать эту отрисовку с другими операциями графической системы. |
||||
|
|||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |