本文實例講述了Android開發(fā)實現加載網絡圖片并下載至本地SdCard的方法。分享給大家供大家參考,具體如下:

package com.example.myimagedemo;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView mImageView;
private String imgPath="/file/tupian/20230213/124530.gif";
private File cache;//緩存路徑
Handler handler=new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
//顯示
Bitmap b=(Bitmap)msg.obj;
mImageView.setImageBitmap(b);
//保存至本地
File imgFile=new File(cache,"woca.jpg");
try {
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(imgFile));
b.compress(Bitmap.CompressFormat.JPEG,80,bos);
bos.flush();
bos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
});
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView=(ImageView)findViewById(R.id.mImageView);
//創(chuàng)建緩存路徑
//Environment.getExternalStorageDirectory()獲取手機內存卡根路徑
cache=new File(Environment.getExternalStorageDirectory(),"Test");
if(!cache.exists()){
cache.mkdirs();
}
//耗時操作都要放在子線程操作
//開啟子線程獲取輸入流
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection conn=null;
InputStream is=null;
try {
URL url=new URL(imgPath);
//開啟連接
conn=(HttpURLConnection) url.openConnection();
//設置連接超時
conn.setConnectTimeout(5000);
//設置請求方式
conn.setRequestMethod("GET");
//conn.connect();
if(conn.getResponseCode()==200){
is=conn.getInputStream();
Bitmap b=BitmapFactory.decodeStream(is);
//把輸入流轉化成bitmap格式,以msg形式發(fā)送至主線程
Message msg=new Message();
msg.obj=b;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//用完記得關閉
is.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
當前標題:Android開發(fā)實現加載網絡圖片并下載至本地SdCard的方法-創(chuàng)新互聯
網站網址:http://chinadenli.net/article0/hjeoo.html
成都網站建設公司_創(chuàng)新互聯,為您提供軟件開發(fā)、域名注冊、虛擬主機、網站設計公司、Google、企業(yè)建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯