国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 系統 > Android > 正文

Android 異步獲取網絡圖片并處理導致內存溢出問題解決方法

2020-04-11 12:31:50
字體:
來源:轉載
供稿:網友
測試環境為Adnroid 2.1以上。
1.AndroidManifest.xml 權限配置
添加互聯網訪問權限:
復制代碼 代碼如下:

<uses-permission android:name="android.permission.INTERNET" />

2.異步圖片類 ImageDownloadTask
復制代碼 代碼如下:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;
public class ImageDownloadTask extends AsyncTask<Object, Object, Bitmap> {
private ImageView imageView = null;
/***
* 這里獲取到手機的分辨率大小
* */
public void setDisplayWidth(int width) {
_displaywidth = width;
}
public int getDisplayWidth() {
return _displaywidth;
}
public void setDisplayHeight(int height) {
_displayheight = height;
}
public int getDisplayHeight() {
return _displayheight;
}
public int getDisplayPixels() {
return _displaypixels;
}
private int _displaywidth = 480;
private int _displayheight = 800;
private int _displaypixels = _displaywidth * _displayheight;
@Override
protected Bitmap doInBackground(Object... params) {
// TODO Auto-generated method stub
Bitmap bmp = null;
imageView = (ImageView) params[1];
try {
String url = (String) params[0];
bmp = getBitmap(url, _displaypixels,true);
} catch (Exception e) {
return null;
}
return bmp;
}
protected void onPostExecute(Bitmap result) {
if (imageView != null&&result!=null) {
imageView.setImageBitmap(result);
if (null != result && result.isRecycled() == false)
System.gc();
}
}
/**
* 通過URL獲得網上圖片。如:http://www.xxxxxx.com/xx.jpg
* */
public Bitmap getBitmap(String url, int displaypixels, Boolean isBig) throws MalformedURLException, IOException {
Bitmap bmp = null;
BitmapFactory.Options opts = new BitmapFactory.Options();
InputStream stream = new URL(url).openStream();
byte[] bytes = getBytes(stream);
//這3句是處理圖片溢出的begin( 如果不需要處理溢出直接 opts.inSampleSize=1;)
opts.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts);
opts.inSampleSize = computeSampleSize(opts, -1, displaypixels);
//end
opts.inJustDecodeBounds = false;
bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts);
return bmp;
}
/**
* 數據流轉成btyle[]數組
* */
private byte[] getBytes(InputStream is) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] b = new byte[2048];
int len = 0;
try {
while ((len = is.read(b, 0, 2048)) != -1) {
baos.write(b, 0, len);
baos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
byte[] bytes = baos.toByteArray();
return bytes;
}
/****
* 處理圖片bitmap size exceeds VM budget (Out Of Memory 內存溢出)
*/
private int computeSampleSize(BitmapFactory.Options options,
int minSideLength, int maxNumOfPixels) {
int initialSize = computeInitialSampleSize(options, minSideLength,
maxNumOfPixels);
int roundedSize;
if (initialSize <= 8) {
roundedSize = 1;
while (roundedSize < initialSize) {
roundedSize <<= 1;
}
} else {
roundedSize = (initialSize + 7) / 8 * 8;
}
return roundedSize;
}
private int computeInitialSampleSize(BitmapFactory.Options options,
int minSideLength, int maxNumOfPixels) {
double w = options.outWidth;
double h = options.outHeight;
int lowerBound = (maxNumOfPixels == -1) ? 1 : (int) Math.ceil(Math
.sqrt(w * h / maxNumOfPixels));
int upperBound = (minSideLength == -1) ? 128 : (int) Math.min(
Math.floor(w / minSideLength), Math.floor(h / minSideLength));
if (upperBound < lowerBound) {
return lowerBound;
}
if ((maxNumOfPixels == -1) && (minSideLength == -1)) {
return 1;
} else if (minSideLength == -1) {
return lowerBound;
} else {
return upperBound;
}
}
}

3.測試調用代碼
復制代碼 代碼如下:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageDownloadTask imgtask =new ImageDownloadTask();
/**這里是獲取手機屏幕的分辨率用來處理 圖片 溢出問題的。begin*/
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
imgtask.setDisplayWidth(dm.widthPixels);
imgtask.setDisplayHeight(dm.heightPixels);
//end
ImageView imageView_test= (ImageView)findViewById(R.id.imageView_test);
imgtask.execute("http://pic.qukantu.com/big/7515/201201031116491.jpg",imageView_test);
}

4.小結
主要是通過 extends AsyncTask<Object, Object, Bitmap> 來實現異步的。
圖片Out Of Memory 內存溢出 這一塊操作,在實際應用中應該考慮淡定抽取出來。這里為了方便放進來了。 溢出處理實際上就是獲得設備分辨率把圖片進行壓縮。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
免费国产在线视频| 久久精品无码一区二区日韩av| 免费av在线| sm国产在线调教视频| 2021av在线| 在线免费观看污| 日本黄色免费网址| 国产中文字幕第一页| 国内外激情在线| 国产三级在线观看| 国产精品不卡一区二区三区在线观看| 国产porn在线| av在线官网| 中文字幕色视频| 国产高清视频在线观看| 亚洲欧洲成人| 国产偷窥老熟盗摄视频| 精品国产高清a毛片无毒不卡 | 在线观看国产福利视频| 91这里只有精品| 九九热在线视频| 777电影在线观看| 国产麻豆一区二区三区精品| 精精国产xxxx视频在线动漫| 国产美女在线一区二区三区| av中文在线资源| 国产精彩视频在线观看免费蜜芽| 超碰91在线| 香蕉视频网站在线观看| 国产精品蜜臀| 国产亚av手机在线观看| 超碰在线免费播放| 欧美日韩一区二区三区在线播放| 国产成人精品自线拍| h网站久久久| 2019年中文字幕| 2019中文字幕在线视频| 天天操天天射天天插| gogo高清在线播放免费| 99爱视频在线观看| 精品无吗乱吗av国产爱色| 最近中文字幕mv免费高清视频8| 亚洲www色| 亚洲色婷婷综合开心网| 97最新国自产拍视频在线完整在线看 | www.操操| 四虎成人免费观看在线网址| 精品国产丝袜高跟鞋| 91欧洲在线视精品在亚洲| 综合蜜桃精品| 国产小视频免费在线网址| 高清欧美精品xxxxx在线看| 九九热在线观看| 国产九九九九| 国产高清免费视频| 国产精品18久久久久网站| 国产精品秘入口| 国产啊啊啊视频在线观看| 国产高清在线视频| baoyu777.永久免费视频| 青青草在线视频免费观看| 女子免费在线观看视频www| 国产在线观看色| 国产污视频在线| 在线视频1区2区| 免费看ww视频网站入口| 最近中文字幕mv免费高清视频8 | 国产理论片免费观看| 国产夫妻视频| 激情综合丁香| 国产日韩欧美精品一区二区三区| 国产精品yjizz视频网一二区| 在线伊人免费视频| 国产综合视频一区二区三区免费| 国产中文字幕在线看| 综合图区亚洲白拍在线 | 国产精品186在线观看在线播放| 精品国产高清a毛片无毒不卡| 免费影视观看网站入口| 国产黄色在线免费观看| 免费看黄视频网站| 精品欧美不卡一区二区在线观看| 亚洲一区二区三区在线观看网站| 久久国产情侣| 中文av资源在线| 国产亚洲精品久久久久久移动网络| 一区二区精品区| 超碰国产在线| 一色桃子av在线| 国产一级黄色大片| 久热精品免费视频| 中文字幕av高清在线观看| 国产永久av在线| 日本高清中文字幕二区在线| 97影院理论午夜| 国产人成精品| 中文字幕在线看精品乱码| 毛片视频免费观看| 四虎国产精品永久在线| 影音av资源站| 在线中文字幕第一页| 中文字幕高清av| 久久久久久久久亚洲精品| a中文在线播放| 免费av在线| 九九热视频免费观看| 美女av在线播放| 久久99亚洲网美利坚合众国| 免费高清视频日韩| 麻豆国产视频| 中文字幕在线视频观看| 国产无遮挡又黄又爽免费软件 | 国产激情99| 国产盗摄一区二区| 97视频在线观看网站| 国产精品久久精品牛牛影视| 尤物视频在线观看| 国产视频一二三区| 国产精品久久久久久久牛牛| 国产不卡精品一区二区三区| 精品亚洲综合| 免费电影网站在线视频观看福利| 免费a在线观看| 99视频资源网| 伊人影院蕉久影院在线播放| 老司机在线视频二区| 国产无套粉嫩白浆在线2022年| 中文字幕日本在线观看| √天堂资源中文www| a视频在线观看| 国产美女被草| 在线观看电影av| 国产精品一区二区婷婷| 91视频久色| 国产美女在线观看| 影音先锋在线中文字幕| 国产二区视频在线观看| av资源网站在线观看| 国产麻豆视频免费观看| www.亚洲视频| 国产精品久久麻豆| 国产有码在线| 国产二区在线播放| 中文字幕免费中文| 久热国产视频| 在线中文字幕第一页| 18 激情视频在线| 在线āv视频| 精品国内自产拍在线视频| 精品国产二区三区| 国产在线一区二区视频| 在线免费看av| 国产超级va在线视频| 日本福利午夜视频在线| 国产高清免费在线播放| 超碰在线免费播放| 四虎国产精品永久地址998| 青青草在线免费观看| 亚洲最新永久在线观看 | 国产91足控脚交在线观看| 国产农村av| 二区中文字幕| 1区不卡电影| 天堂在线免费视频| 国产精品视频一区二区免费不卡| 久草视频国产| 九九热视频精品在线观看| 日本三级视频网站| eeuss影院在线观看| 午夜在线网站| 另类高清dbsm日本tvav| 精品无人区乱码1区2区3区免费 | 牛牛精品视频在线| 亚洲日本久久久午夜精品| 91欧洲在线视精品在亚洲| 国产三级做爰在线观看| 国产免费a∨片在线观看不卡| 麻豆网站在线免费观看| 日韩a视频在线观看| 日本不卡影院| www.久草.com| 激情小说 在线视频| 中文字幕亚洲精品视频| 国产一级片网站| 国产精品国产三级国产试看| 国产特级嫩嫩嫩bbb| 精品美女在线观看视频在线观看 | 九九精品视频在线观看九九| 久久综合第一页| 日本最新在线视频| 国产色a在线观看| 97国产视频| 免费国产阿v视频在线观看| www.狠狠插| 国产欧美日韩第一页| 亚洲第一成年免费网站| 日本中文字幕在线视频| 在线观看国产视频| 国产素人视频在线观看| 青青九九免费视频在线|