亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-25 01:00:02 來源:腳本之家 閱讀:446 作者:z-Coder 欄目:移動開發

本文實例講述了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="https://cache.yisu.com/upload/information/20200623/125/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);
    //創建緩存路徑
    //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圖形與圖像處理技巧總結》、《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内江市| 宁海县| 宁晋县| 尚义县| 缙云县| 敦化市| 呈贡县| 教育| 宣城市| 聊城市| 上蔡县| 依兰县| 平昌县| 虹口区| 石阡县| 大名县| 宣化县| 德州市| 赤水市| 延川县| 漠河县| 杭锦后旗| 满洲里市| 寻乌县| 广东省| 桐乡市| 大洼县| 九龙城区| 巨鹿县| 台北县| 札达县| 金沙县| 天全县| 应城市| 房山区| 贵港市| 苏尼特左旗| 南川市| 噶尔县| 兰西县| 陆川县|