方便,好體驗(yàn)得顯示長(zhǎng)圖片

/*

顯示長(zhǎng)圖片,但是要小心OOM,目前我的圖片為5.32MB可以正常使用.

如果出現(xiàn)OOM,可以嘗試使用ListView

也可以使用webView,但是webView體驗(yàn)不如本地原生.

*/


public void setLongPicture(String assetsLocation){

try {

//獲得圖片的寬、高

? ? ? ? BitmapFactory.Options tmpOptions =new BitmapFactory.Options();

? ? ? ? tmpOptions.inJustDecodeBounds =true;

? ? ? ? BitmapFactory.decodeStream(getAssets().open(assetsLocation), null, tmpOptions);

? ? ? ? int width =tmpOptions.outWidth;

? ? ? ? int height =tmpOptions.outHeight;

? ? ? ? //設(shè)置顯示圖片的中心區(qū)域

? ? ? ? BitmapRegionDecoder bitmapRegionDecoder =BitmapRegionDecoder.newInstance(getAssets().open(assetsLocation), false);

? ? ? ? BitmapFactory.Options options =new BitmapFactory.Options();

? ? ? ? options.inPreferredConfig =Bitmap.Config.ARGB_8888;

? ? ? ? int beforeHeight;

? ? ? ? int currentHeight =0;

? ? ? ? int singleIncrease =4096;

? ? ? ? Bitmap bitmap;

? ? ? ? ImageView imageView;

? ? ? ? while (true){

beforeHeight =currentHeight;

? ? ? ? ? ? currentHeight+=singleIncrease;

? ? ? ? ? ? if (currentHeight

bitmap =bitmapRegionDecoder.decodeRegion(new Rect(0, beforeHeight, width, currentHeight), options);

? ? ? ? ? ? ? ? imageView =new ImageView(this);

? ? ? ? ? ? ? ? imageView.setImageBitmap(bitmap);

? ? ? ? ? ? ? ? mLl.addView(imageView);

? ? ? ? ? ? }else{

bitmap =bitmapRegionDecoder.decodeRegion(new Rect(0, beforeHeight, width, height), options);

? ? ? ? ? ? ? ? imageView =new ImageView(this);

? ? ? ? ? ? ? ? imageView.setImageBitmap(bitmap);

? ? ? ? ? ? ? ? mLl.addView(imageView);

? ? ? ? ? ? ? ? return;

? ? ? ? ? ? }

}

}catch (IOException e) {

e.printStackTrace();

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容