最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)實現(xiàn)加載網(wǎng)絡圖片并下載至本地SdCard的方法

 更新時間:2018年01月08日 11:58:55   作者:z-Coder  
這篇文章主要介紹了Android開發(fā)實現(xiàn)加載網(wǎng)絡圖片并下載至本地SdCard的方法,涉及Android圖片文件的讀取、保存及權限相關操作技巧,需要的朋友可以參考下

本文實例講述了Android開發(fā)實現(xiàn)加載網(wǎng)絡圖片并下載至本地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()獲取手機內存卡根路徑
    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();
  }
}

記得在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圖形與圖像處理技巧總結》、《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結

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

相關文章

最新評論

邢台市| 辛集市| 公安县| 贡嘎县| 武鸣县| 永胜县| 夏河县| 凯里市| 清镇市| 奉节县| 天水市| 朝阳县| 五原县| 木里| 尼勒克县| 饶河县| 铁岭市| 曲周县| 江阴市| 五大连池市| 龙南县| 天峨县| 延长县| 榆社县| 和静县| 留坝县| 都江堰市| 石棉县| 广南县| 杭州市| 宜章县| 民县| 桐城市| 嫩江县| 济阳县| 湘潭市| 岳西县| 玛纳斯县| 镇康县| 宁化县| 大庆市|