Форум программистов, компьютерный форум, киберфорум
Наши страницы

SurfaceView сворачивание программы - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Keystore http://www.cyberforum.ru/android-dev/thread852398.html
Здравствуйте форумчанины. Начал изучения программирования для android. Скачал среду разработки, а это eclipse, java. Сделал программу "Hellow world" и в задании написано что бы запустить ее на...
Программирование Android Разработка игры Арканоид — куда копать? Встала задача написать арканоид. Опыта мобильной разработки нет вообще. Дайте, плиз, ссылки на статьи, руководства для быстрого старта. Планирую сделать что-то вроде этого (не на футбольную... http://www.cyberforum.ru/android-dev/thread852352.html
Программирование Android Android UiThread (UI thread)
кто-нибудь может объяснить , что это такое и как используется на примере?
Программа для записи данных по принятым звонкам! Программирование Android
Здравствуйте. По работе много звонков и постоянно забываю или упускаю причину звонка. А мне по специфики работы требуется анализировать причин беспокойства. Ранее писал программы под Win32,...
Программирование Android Класс видеплеера http://www.cyberforum.ru/android-dev/thread852160.html
могите пожалуйста написать класс видеплеера.то есть VideoView, Mediaplayer. просто не могу найти примера. хочу попробовать написать отдельный класс, чтобы подключать к разным лайоутам
Программирование Android Программа для написания карточной игры под Android Подскажите в какой проге писать карточную игру чтоб потом ее можно было перенести на Android. подробнее

Показать сообщение отдельно
metrolog
4 / 4 / 0
Регистрация: 18.11.2012
Сообщений: 101

SurfaceView сворачивание программы - Программирование Android

30.04.2013, 01:07. Просмотров 1252. Ответов 12
Метки (Все метки)

Java
1
2
3
4
5
6
7
8
9
10
@Override
protected void onDraw(Canvas canvas){  //рисует игровое поле
                super.onDraw(canvas);
                Paint paint = new Paint();
                canvas.drawPaint(paint);
                paint.setStyle(Paint.Style.FILL);
                paint.setColor(Color.WHITE);
                update();
                canvas.drawCircle(XC, YC, radius, paint);
                }
метод отрисовки в SurfaceView
Сворачиваю программу в первый раз - все нормально когда разворачиваю.
При повторном сворачивании выходит ошибка


04-29 22:57:16.959: E/AndroidRuntime(4813): FATAL EXCEPTION: Thread-23150
04-29 22:57:16.959: E/AndroidRuntime(4813): java.lang.NullPointerException
04-29 22:57:16.959: E/AndroidRuntime(4813): at com.example.blindballtest.GameField.onDraw(GameField.java:101)
04-29 22:57:16.959: E/AndroidRuntime(4813): at com.example.blindballtest.ThreadGame.run(ThreadGame.java:42)

Ругается на
canvas.drawPaint(paint);

Подскажите, пожалуйста, в чем дело и как ее исправить?

Добавлено через 2 часа 6 минут
Разобрался в чем дело.
при разворачивании программы у меня сразу запускается поток с отрисовкой и из за того что отрисовка слишком частая ( для достаточной плавности) все переменные не успевают инициализироваться и выходит ошибка
именно не успевает инициализироваться Paint paint = new Paint();

варианты исправить ошибку:
1)уменьшить частоту обновления потока - не подходит для меня.
2)при раскрывании программы не запускать поток, а как бы выводить диалог с предложением продолжить игру. А в это время инициализировать переменные. А при положительном ответе запускать уже отрисовку.

Скажите правильные мысли, или можно все как то по другому сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru