Прежде всего, мое приложение в настоящее время определяет 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?