Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地SdCard的方法
本文實例講述了Android開發(fā)實現(xiàn)加載網(wǎng)絡(luò)圖片并下載至本地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="http://pic.nipic.com/2007-11-09/200711912453162_2.jpg";
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()獲取手機內(nèi)存卡根路徑
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();
//設(shè)置連接超時
conn.setConnectTimeout(5000);
//設(shè)置請求方式
conn.setRequestMethod("GET");
//conn.connect();
if(conn.getResponseCode()==200){
is=conn.getInputStream();
Bitmap b=BitmapFactory.decodeStream(is);
//把輸入流轉(zhuǎn)化成bitmap格式,以msg形式發(fā)送至主線程
Message msg=new Message();
msg.obj=b;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//用完記得關(guān)閉
is.close();
conn.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
記得在AndroidMenifest.xml文件加入這三個權(quán)限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
另,可點擊此處查看Android權(quán)限操作說明
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android 網(wǎng)絡(luò)圖片查看顯示的實現(xiàn)方法
- Android讀取本地或網(wǎng)絡(luò)圖片并轉(zhuǎn)換為Bitmap
- Android 異步獲取網(wǎng)絡(luò)圖片并處理導(dǎo)致內(nèi)存溢出問題解決方法
- Android顯示網(wǎng)絡(luò)圖片實例
- Android 下載網(wǎng)絡(luò)圖片并顯示到本地
- 簡單實現(xiàn)Android讀取網(wǎng)絡(luò)圖片到本地
- Android使用線程獲取網(wǎng)絡(luò)圖片的方法
- 在Android的應(yīng)用中實現(xiàn)網(wǎng)絡(luò)圖片異步加載的方法
- Android實現(xiàn)網(wǎng)絡(luò)圖片瀏覽功能
- Android 讀取sdcard上的圖片實例(必看)
- Android sdcard實現(xiàn)圖片存儲 、聯(lián)網(wǎng)下載
相關(guān)文章
Android onMeasure與onDraw及自定義屬性使用示例
這篇文章主要介紹了Android onMeasure與onDraw及自定義屬性使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習吧2023-02-02
解決Android調(diào)用系統(tǒng)分享給微信,出現(xiàn)分享失敗,分享多文件必須為圖片格式的問題
這篇文章主要介紹了解決Android調(diào)用系統(tǒng)分享給微信,出現(xiàn)分享失敗,分享多文件必須為圖片格式的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
為Android應(yīng)用增加渠道信息 自動化不同渠道的打包過程的使用詳解
為了統(tǒng)計渠道信息,就不得不在程序的某個地方加入渠道的信息,然后針對不同的渠道打不同的包。一般可以在Manifest文件中加入渠道編號,而不直接寫在代碼中。這樣做的好處是,可以針對不同渠道,自動化去修改Manifest文件中的渠道編號,然后自動為該渠道打包2013-05-05
Android使用BottomNavigationBar實現(xiàn)導(dǎo)航欄功能
這篇文章主要介紹了Android使用BottomNavigationBar實現(xiàn)導(dǎo)航欄功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08
使用AndroidStudio上傳忽略文件至SVN Server的解決辦法
這篇文章主要介紹了使用AndroidStudio上傳忽略文件至SVN Server的解決辦法 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06

