我正面臨此問題,但無法解決。我的問題是這樣的:在Android的列表視圖中顯示和滾動大型位圖時出現異常
- 我有一個列表視圖。我的列表行包含一個圖像視圖和一個文本視圖
- 我有每12 MB大小存儲在我的SD卡
- 我在我的列表視圖
我的ImageView的設置這些圖片20幅圖片我可以通過下面的代碼來完成它。這個我在做我的自定義適配器getView
方法:
public View getView (int position, View convertView, ViewGroup parent) {
//other stuffs like recycling, view holder etc...
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inSampleSize = 4; // tried with 8,12 too
Bitmap bitmap = BitmapFactory.decodeFile(imageUri, opt);
holder.imageView.setImageBitmap(bitmap);
return convertView;
}
下面這段代碼工作正常,小的圖像,但嚴重破壞了大尺寸的圖像。應用程序崩潰OutOfMemoryError
。如果我嘗試將inSampleSize
增加到8或12,它會起作用,但圖像質量會急劇下降,並且圖像根本看不到原始圖像。我也嘗試使用imageView.setImageURI(imageUri)
,但文檔建議僅使用setImageBitmap
。
現在請有人幫我解決這個問題。如何解決這個問題,而不會影響圖像質量?
這些圖像是什麼(每個12MB)?目標圖像維度是什麼? – Asahi 2012-02-27 14:12:09