2012-06-09 53 views
2

我有下面的代碼加載PNG文件:即使沒有alpha通道,我如何將ARG_文件作爲ARGB_8888加載?

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
options.inDither = false; 
map = BitmapFactory.decodeResource(getResources(), mapid, options); 

不幸的是,它加載圖像作爲RGB_565如果他們沒有alpha通道。我該如何防止這種情況發生,並且每次不變地加載它們(無抖動,不轉換或其他)?

如果這是不可能的,那麼是否有另一種方式來加載PNG文件作爲ARGB_8888沒有BitmapFactory?

或者是否有另一種格式可以用來代替也支持Alpha通道並始終提供ARGB_8888位圖的PNG? PS:我正在使用Android 2.3.4。

回答

1

我明白了。

  1. 嘗試加載沒有PreferredConfig的PNG位圖。
  2. 獲取圖像像素。
  3. 用你想要的首選配置(ARGB_8888)創建一個新的位圖。
  4. 在新的位圖中設置PNG位圖的像素。

我認爲它應該運行。

+1

你如何建議我做第一步?當我加載圖像時,它已經是565格式。你所建議的只是將其轉換回來,但圖像已經改變,信息丟失。如果這是可以接受的,我可以添加一個「.copy(Bitmap.Config.ARGB_8888,true)」。 – HardCoder

+0

你可以下載一個圖像'BitmapFactory.decodeFile(file.getAbsolutePath())'這個自動加載圖像的默認配置。 – SamuSan

相關問題