国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android開發實現加載網絡圖片并下載至本地SdCard的方法

2019-10-22 18:17:17
字體:
來源:轉載
供稿:網友

本文實例講述了Android開發實現加載網絡圖片并下載至本地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);    //創建緩存路徑    //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形式發送至主線程            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();  }}

記得在AndroidMenifest.xml文件加入這三個權限

<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權限操作說明

希望本文所述對大家Android程序設計有所幫助。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手游| 湄潭县| 洪泽县| 滕州市| 霍山县| 新巴尔虎右旗| 韶山市| 新邵县| 绿春县| 云梦县| 姚安县| 类乌齐县| 沁阳市| 潢川县| 绵竹市| 安徽省| 陆河县| 新乡县| 泰来县| 凌源市| 肇庆市| 北辰区| 斗六市| 威远县| 辽阳县| 寿宁县| 长顺县| 神木县| 康平县| 南城县| 乐山市| 宣恩县| 渝中区| 北川| 昭苏县| 神农架林区| 丹东市| 德惠市| 含山县| 临海市| 漯河市|