簡體   English   中英

當anyDensity = false時,為什么getDrawingCache(true)返回null?

[英]When anyDensity=false why does getDrawingCache(true) return null?

首先,我的應用程序當前在清單文件中定義anyDensity = false。 在應用程序的其他地方,我試圖捕獲並顯示View的DrawingCache,但是如果不縮放工件就無法獲得清晰的位圖。

下面的代碼產生一個位圖,但它具有縮放偽像,並且通常是模糊的。

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

在我閱讀本文時,getDrawingCache的文檔說這是可以預期的,並使用getDrawingCache(true)。 但是,下面的兩個代碼示例都將引發NullPointer異常,因為getDrawingCache(true)返回的位圖始終為null。

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();

有誰知道當anyDensity = false時如何正確捕獲並渲染drawingCache?

您在onCreate中使用過getDrawingCache嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM