Android下載網(wǎng)絡(luò)圖片并顯示到本地

Android下載網(wǎng)絡(luò)圖片的流程是:

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的茫崖網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

發(fā)送網(wǎng)絡(luò)請(qǐng)求->將圖片以流的形式下載下來->將流轉(zhuǎn)換為Bitmap并賦給ImageView控件。

注意點(diǎn)

  • 最新的Android系統(tǒng)不可以在主線程上請(qǐng)求網(wǎng)絡(luò),需要使用線程來請(qǐng)求
  • 下載圖片屬于耗時(shí)任務(wù),最優(yōu)做法是放在一個(gè)AsyncTask中操作

設(shè)計(jì)思路

1.網(wǎng)絡(luò)請(qǐng)求:該例中需要下載的文件類型是圖片類型,可以將網(wǎng)絡(luò)請(qǐng)求獲取的數(shù)據(jù)類型轉(zhuǎn)換為Bitmap已供ImageView直接使用,但是一個(gè)合理的網(wǎng)絡(luò)請(qǐng)求類的設(shè)計(jì)是將下載的數(shù)據(jù)類型轉(zhuǎn)換為最基本的InputStream,這樣不管是下載圖片,音頻,文本還是視頻,都可以將結(jié)果拋出去讓上層的邏輯來處理。

2.異步請(qǐng)求:下載圖片,網(wǎng)絡(luò)下載屬于耗時(shí)操作,所以需要封裝一個(gè)AsyncTask來處理網(wǎng)絡(luò)請(qǐng)求,該請(qǐng)求繼承自Runnable接口。

3.異步回調(diào):前臺(tái)需要通過回調(diào)的方式來得到圖片源,并將該圖片源賦值給ImageView.

相關(guān)代碼

NetService:網(wǎng)絡(luò)請(qǐng)求服務(wù)類

public class NetService {
public static InputStream getInputStreamByUrl(String address){
URL url = null;
HttpURLConnection urlConnection = null;
try {
url = new URL(address);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(2 * 1000);
urlConnection.setRequestMethod("GET");
return urlConnection.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

NetServiceTask:AsyncTask類

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import java.io.BufferedInputStream;
import java.io.InputStream;
public class NetServiceTask extends AsyncTask
public NetServiceTask(String address, URLPostHandler urlPostHandler) {
 this.address=address;
 this.urlPostHandler=urlPostHandler;
}
/**
 * 表示任務(wù)執(zhí)行之前的操作
 */
@Override
protected void onPreExecute() {
 // TODO Auto-generated method stub
 super.onPreExecute();
}
/**
 * 主要是完成耗時(shí)的操作
 */
@Override
protected Bitmap doInBackground(String... arg0) {
 InputStream inputStream=NetService.getInputStreamByUrl(arg0[0]);
 if(inputStream!=null){
  return BitmapFactory.decodeStream(new BufferedInputStream(inputStream));
 }
 return null;
}
/**
 * 主要是更新UI的操作
 */
@Override
protected void onPostExecute(Bitmap result) {
 // TODO Auto-generated method stub
 super.onPostExecute(result);
 if(this.urlPostHandler!=null&&result!=null){
  this.urlPostHandler.PostHandler(result);
 }
}
@Override
public void run() {
 execute(this.address);
}
}

URLPostHandler:回調(diào)接口

public interface URLPostHandler {
void PostHandler(Bitmap bitmap);
}

前臺(tái)請(qǐng)求圖片并顯示到ImageView

public class MainActivity extends AppCompatActivity {
Button buttonDownload;
ImageView imageViewImg;
@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 buttonDownload = (Button) findViewById(R.id.buttonDownload);
 imageViewImg = (ImageView) findViewById(R.id.imageViewImg);
 buttonDownload.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
  String address = "/upload/otherpic49/131904.html";
  NetServiceTask netServerTask= new NetServiceTask(address,new URLPostHandler() {
  @Override
  public void PostHandler(Bitmap bitmap) {
   imageViewImg.setImageBitmap(bitmap);
  }
  });
  Thread thread=new Thread(netServerTask);
  thread.start();
 }
 });
}
}

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持創(chuàng)新互聯(lián)!

網(wǎng)站欄目:Android下載網(wǎng)絡(luò)圖片并顯示到本地
網(wǎng)頁地址:http://www.kartarina.com/article12/gogcgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作網(wǎng)站排名做網(wǎng)站網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計(jì)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
主站蜘蛛池模板: 亚洲av午夜精品无码专区| 精品人体无码一区二区三区 | 伊人久久精品无码二区麻豆| 精品无码久久久久久久久久 | 亚洲AⅤ永久无码精品AA| 亚洲VA中文字幕不卡无码| 无码人妻精品中文字幕免费 | 日韩精品人妻系列无码av东京| 亚洲AV无码不卡在线观看下载| 无码乱人伦一区二区亚洲| 精品一区二区三区无码免费直播| 久热中文字幕无码视频| 曰批全过程免费视频在线观看无码 | 无码毛片一区二区三区视频免费播放| 亚洲真人无码永久在线| 成人免费无码精品国产电影| 少妇精品无码一区二区三区| 人妻无码一区二区三区| 91精品无码久久久久久五月天| 国产乱人伦Av在线无码| 精品无码人妻久久久久久 | 精品久久亚洲中文无码| av无码人妻一区二区三区牛牛 | 亚洲精品无码AV人在线播放| 一本一道中文字幕无码东京热| 无码少妇丰满熟妇一区二区| 日韩免费无码一区二区三区| 亚洲一级Av无码毛片久久精品| 久久人妻无码一区二区| 日韩精品无码区免费专区| 无码aⅴ精品一区二区三区浪潮| 亚洲精品午夜无码电影网| 国产在线观看无码免费视频| 亚洲成AV人片在线观看无码 | 亚洲AV无码不卡在线观看下载| 亚洲av日韩av永久无码电影| 一区二区三区无码被窝影院| 成人免费午夜无码视频| 国产精品成人无码免费| 国产精品白浆在线观看无码专区| 亚洲AV无码专区在线厂|