Android Bitmap太大導致ImageView不顯示的問題

今天做我們的智能相冊的項目時,遇到了非常神奇的問題,當照片太大時,導致ImageView.setImageBitmap不顯示,上網上搜了很多辦法,感覺都不是那麼靠譜,最後使用了簡單粗暴的手段:

//Bitmap too large to be uploaded into a texture
Bitmap bm = BitmapFactory.decodeFile(imagePath);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth=dm.widthPixels;
if(bm.getWidth()<=screenWidth){
    imageView.setImageBitmap(bm);
}else{
    Bitmap bmp=Bitmap.createScaledBitmap(bm, screenWidth, bm.getHeight()*screenWidth/bm.getWidth(), true);
    imageView.setImageBitmap(bmp);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

主要的思路就是把通過文件路徑imagePath得到的圖片Bitmap做Scale處理,但是如果Bitmap其實沒有那麼大就不作處理,這裏我判斷Bitmap的寬比屏幕小時,就沒有必要做處理了。

發佈了0 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章