91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

鹤峰县| 如东县| 池州市| 永靖县| 铜梁县| 上林县| 安化县| 龙口市| 柳河县| 突泉县| 黄骅市| 贺州市| 岳阳市| 阳曲县| 萍乡市| 张家口市| 新蔡县| 太仓市| 久治县| 广州市| 遂川县| 连平县| 从江县| 康乐县| 呈贡县| 绩溪县| 庆安县| 如东县| 额尔古纳市| 灯塔市| 通榆县| 英超| 崇州市| 峡江县| 太谷县| 洪雅县| 平南县| 沈丘县| 洮南市| 磴口县| 九龙县|