2013-04-05 2 views
0

У меня есть код следовать, чтобы получить скриншотgetDrawingCache возвращение нуля при запуске обезьяны

View screen = getWindow().getDecorView(); 
    screen.setDrawingCacheEnabled(true); 
    screen.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 
    screen.buildDrawingCache(); 

    Bitmap bitmap = screen.getDrawingCache(); 

Код в onOptionsItemSelected в UI потоке.

Он работает нормально, когда я проверяю его вручную. Однако, когда я запускаю приложение с обезьяной, bitmap: null Я не уверен, всегда ли он нулевым в режиме обезьяны или просто из-за случайности обезьян.

Любые идеи, почему обезьяна может вести себя по-другому? Я не хочу, чтобы слепо добавить нулевой указатель мыши в более позднем коде.

Благодаря

ответ

0

вы должны использовать buildDrawingCache (истинный), потому что buildDrawingCache() такой же, как buildDrawingCache (ложь) Убеждайтесь скопировать растровое изображение в другой перед использованием getDrawingCache(), как показано ниже.

Bitmap bt=Bitmap.createBitmap(screen.getDrawingCache()); 

потому, что его копия нашего растровый перед заменой(), если вы звоните setDrawingCacheEnabled (ложь).