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

popup window и surfaceview - holder.lockCanvas() return null - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Динамическая таблица http://www.cyberforum.ru/android-dev/thread1096682.html
Здраствуйте, такой вопрос: есть товар, у него есть характеристика1, характеристика2 и кол-во товара. надо построить динамическую таблицу с кол-вом товара. Например есть Свитеры: - Свитер...
Программирование Android Android Studio + Gradle offline Те, кто работает с этой средой, объясните как ее правильно использовать с этим gradle. Только что все необходимое для работы компоненты среда скачала с интернета - как бы все запускается без ошибок.... http://www.cyberforum.ru/android-dev/thread1096592.html
Ошибка в Preferences Framework Программирование Android
Недавно начал изучать программирование под андроид и столкнулся с проблемой. Я создал xml с настройками через Preferences Framework, создал активность, в ней код: public class SettingsActivity...
Программирование Android Отключается приложение
Написал приложение, но в свернутом состоянии оно через минут 30 выключается. Как можно это исправить? Задача приложения в том, что оно слушает входящие смс-ки в фоновом режиме, но приложение...
Программирование Android Отправить Soap (XML) запрос и принять данные. Eclipse http://www.cyberforum.ru/android-dev/thread1096533.html
По примеру http://khpi-iip.mipk.kharkiv.edu/library/sotii/labs/lab04.html сделал SoapUI, как из проги отправить запрос на веб сервис ?? вот например веб сервис...
Программирование Android Особенности работы GPS-приемника Android 4.1.1 В своей программе использую геолокацию по NETWORK и GPS. С какого-то момента перестал принимать координаты по провайдеру GPS. При этом я заметил, что отсутствует мигающий значок в... подробнее

Показать сообщение отдельно
Shadowgun
1 / 1 / 0
Регистрация: 01.07.2012
Сообщений: 24

popup window и surfaceview - holder.lockCanvas() return null - Программирование Android

14.02.2014, 18:22. Просмотров 1046. Ответов 0
Метки (Все метки)

Осуществил попытку добавить в мой popup window surfaceview
Java
1
2
3
4
5
6
7
8
9
10
public void Show() {
        pw = new PopupWindow();
        pw.setFocusable(true);
        pw.setOutsideTouchable(true);
        pw.setContentView(new MessengerView(this.findSurface().getContext(),
                pw, this.text));
        pw.setWidth(300);
        pw.setHeight(300);
        pw.showAtLocation(this.findSurface(), Gravity.CENTER, 0, 0);
    }
внутриности MessengerView
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
holder = getHolder();
    viewThread = new ViewThread(this);
    holder.addCallback(new Callback() {
        @Override
        public void surfaceChanged(SurfaceHolder holder, int format,
                int width, int height) {
            onSurfaceChanged();
        }
 
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            onSurfaceLoaded();
        }
 
        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            viewThread.closeThread();
        }
 
    });
внутриности потока рисования
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void run() {
        while (running) {
            Canvas canvas = null;
            try {
                // подготовка Canvas-а
                canvas = view.getHolder().lockCanvas();
                canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
                synchronized (view.getHolder()) {
                    view.draw(canvas);
                }
            } catch (Exception e) {
            } finally {
                if (canvas != null) {
                    view.getHolder().unlockCanvasAndPost(canvas);
                }
            }
        }
    }
в этом случае canvas = null
log errore
XML
1
02-14 00:17:48.632: E/SurfaceHolder(22131): Exception locking surface 02-14 00:17:48.632: E/SurfaceHolder(22131): java.lang.IllegalArgumentException 02-14 00:17:48.632: E/SurfaceHolder(22131): at android.view.Surface.lockCanvasNative(Native Method) 02-14 00:17:48.632: E/SurfaceHolder(22131): at android.view.Surface.lockCanvas(Surface.java) 02-14 00:17:48.632: E/SurfaceHolder(22131): at android.view.SurfaceView$4.internalLockCanvas(SurfaceView.java) 02-14 00:17:48.632: E/SurfaceHolder(22131): at android.view.SurfaceView$4.lockCanvas(SurfaceView.java) 02-14 00:17:48.632: E/SurfaceHolder(22131): at sushi.thread.ViewThread.run(ViewThread.java:39)
этот же сюрфейс нормально работает на обычном активити - тут погибает, в чем проблема, помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru