当anyDensity = false时,为什么getDrawingCache(true)返回null?

时间:2010-06-09 14:49:50

标签: android

首先,我的应用程序当前在清单文件中定义了anyDensity = false。在应用程序的其他地方,我正在尝试捕获并显示View的DrawingCache,但是我无法获得没有缩放工件的清晰位图。

下面的代码产生了一个Bitmap,但它有缩放瑕疵,通常很模糊。

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

在我阅读它时,getDrawingCache的文档说这是预期的并且使用getDrawingCache(true)。然而,下面的两个代码示例都抛出了NullPointer异常,因为getDrawingCache(true)返回的Bitmap始终为null。

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

OR

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

当anyDensity = false时,有没有人知道如何正确捕获和渲染drawingCache?

1 个答案:

答案 0 :(得分:0)

您是否在onCreate中使用了getDrawingCache?