2016-03-23 36 views
0

我有一個圖像是單色的,意味着只有白色和黑色像素。爲了覆蓋所有的dpi文件夾,我製作了多個版本的圖像。我正在使用單色圖像,因爲我想應用填充算法。 問題是,在某些設備中,android使用圖像的大小調整版本,縮放時有一些灰色像素。爲了解決這個問題,我嘗試糾正像素並將灰色轉換爲白色或黑色,但這需要花費大量時間。 是否有可能迫使android在生成單色圖像的同時調整圖像視圖的大小或應用快速過濾器來重新生成單色圖像? 雖然我還沒有嘗試過,我應該在nodpi文件夾中生成不同版本的圖像,並且可以在不縮放的情況下使用它們,也許使用中心裁剪?Android調整大小單色imageview創建灰色像素

+0

作爲替代方案:您可以嘗試使用位圖並將結果設置爲imageview? – Christopher

+0

你的意思是使用可繪製圖像而不是imageview?我怎樣才能做到這一點?我需要的只是一張從imageview中獲得的位圖!如果我可以直接從圖像文件中獲得它,我想我已經得救了! – George

回答

0

您可以將Drawable加載爲位圖。

final BitmapFactory.Options options = new BitmapFactory.Options(); 
// Load the bitmap as mutable object 
options.inMutable = true; 
final Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image, options); 

然後你就可以用你的算法處理它,最後你會結果設置爲您的ImageView

imageView.setImageBitmap(bitmap); 

這樣,你不應該造成Android的縮放任何灰色像素。

更多選項:

  1. See here
  2. And here
+0

在4行代碼之後,在運行我的算法之前,我需要將圖像縮放到屏幕大小,然後將其分配給imageView。如果我不這樣做,並在最後一步直接將位圖分配給imageView,我不應該得到相同的結果嗎?當我應用算法時,我必須有一個與屏幕一樣大的位圖,所以我必須調整可繪製文件夾中的圖像大小。 – George