簡體   English   中英

在Android中裁剪並調整圖像大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM