[英]Crop and resize an image in Android
我正在從磁盤讀取圖像並在ListView
中的行內顯示它。 圖像文件大於需要在行的ImageView
中顯示的圖像文件。 由於我需要將bitmaps
緩存在RAM中以便更快地訪問,我希望它們只能像ImageView
一樣大(85x85 dip)
現在我正在閱讀文件中
bitmap = BitmapFactory.decodeFile(file);
ImageView負責縮放和裁剪
機器人:scaleType = “centerCrop”
AFAIK這是將整個位圖保留在內存中(因為我將其緩存在XD中)並且這很糟糕
如何從ImageView中刪除此責任並在加載文件時執行裁剪+縮放? 所有位圖都將以85x85傾角顯示,需要為'centerCrop'
在加載,裁剪和縮放之前,您可以找到圖片的尺寸:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bmo = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
然后加載樣本大小:
...
options.inSampleSize = 1/2;
bmo = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
...
= Bitmap.createScaledBitmap(bmo, dW, dH, false);
不要忘記回收臨時位圖,否則你會得到OOME。
bmo.recycle();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.