Когда anyDensity = false, почему getDrawingCache (true) возвращает ноль? - PullRequest
0 голосов
/ 09 июня 2010

Прежде всего, мое приложение в настоящее время определяет anyDensity = false в файле манифеста.В другом месте приложения я пытаюсь захватить и отобразить DrawingCache вида, но я не могу получить четкое растровое изображение без артефактов масштабирования.

Приведенный ниже код дает растровое изображение, но оно имеет артефакты масштабирования и являетсякак правило, нечеткий.

myView.setDrawingCacheEnabled(true);
Bitmap myBitmap = Bitmap.Create(myView.getDrawingCache());
myImageView.setImageBitmap(myBitmap);

Как я прочитал, в документации по getDrawingCache сказано, что этого следует ожидать и использовать getDrawingCache (true).Тем не менее, оба приведенных ниже примера кода генерируют исключения NullPointer, поскольку растровое изображение, возвращаемое getDrawingCache (true), всегда равно нулю.

myView.setDrawingCacheEnabled(true);
Bitmap myBitmap = Bitmap.Create(myView.getDrawingCache(true));
myImageView.setImageBitmap(myBitmap);

ИЛИ

myView.buildDrawingCache(true);
Bitmap myBitmap = Bitmap.Create(myView.getDrawingCache(true));  
myImageView.setImageBitmap(myBitmap);
myView.destroyDrawingCache();

Кто-нибудь знает, как правильно захватывать и отображатьDrawingCache, когда anyDensity = false?

1 Ответ

0 голосов
/ 09 июня 2011

Использовали ли вы getDrawingCache в onCreate?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...