Приложение скриншота Android - исключение нулевого указателя - PullRequest
0 голосов
/ 17 марта 2012

Я пытаюсь проверить код, чтобы сделать скриншот на эмуляторе Android.У меня есть следующий код для начала:

    View content = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0);
    content.setDrawingCacheEnabled(true);
    Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());
    content.setDrawingCacheEnabled(false);

Но я получаю исключение нулевого указателя в createBitmap в строке 551.

Может кто-нибудь указать, что я делаю неправильно.

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Я думаю, что ваша проблема может быть связана с вашим просмотром содержимого:

View content = ((ViewGroup)findViewById(android.R.id.content)).getChildAt(0);

Вы пытались удалить getChildAt(0) или заменить его на getRootView()?

Иначе, естьхороший сайт с образцом, если он может вам помочь (последнее сообщение на первой странице форума):

Захват экрана с кодированием

Скажите, если вы найдете, какрешить это.

0 голосов
/ 02 октября 2012

Вы должны использовать MeasureSpec в некоторых случаях. Попробуйте это:

View content = ((ViewGroup)findViewById(android.R.id.content));
content.setDrawingCacheEnabled(true);
content.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
content.layout(0, 0, content.getMeasuredWidth(), content.getMeasuredHeight());
content.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());
...