Android开发-下载网络图片并显示到本地
Android下載網絡圖片的流程是:
發送網絡請求->將圖片以流的形式下載下來->將流轉換為Bitmap并賦給ImageView控件。
注意點
- 最新的Android系統不可以在主線程上請求網絡,需要使用線程來請求
- 下載圖片屬于耗時任務,最優做法是放在一個AsyncTask中操作
設計思路
1.網絡請求:該例中需要下載的文件類型是圖片類型,可以將網絡請求獲取的數據類型轉換為Bitmap已供ImageView直接使用,但是一個合理的網絡請求類的設計是將下載的數據類型轉換為最基本的InputStream,這樣不管是下載圖片,音頻,文本還是視頻,都可以將結果拋出去讓上層的邏輯來處理。
2.異步請求:下載圖片,網絡下載屬于耗時操作,所以需要封裝一個AsyncTask來處理網絡請求,該請求繼承自Runnable接口。
3.異步回調:前臺需要通過回調的方式來得到圖片源,并將該圖片源賦值給ImageView.
相關代碼
NetService:網絡請求服務類
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<String, Void, Bitmap> implements Runnable{
private String address;
private URLPostHandler urlPostHandler = null;
}
URLPostHandler:回調接口
public interface URLPostHandler {
void PostHandler(Bitmap bitmap);
}
前臺請求圖片并顯示到ImageView
public class MainActivity extends AppCompatActivity {
}
轉載于:https://www.cnblogs.com/yujie365/p/6647245.html
總結
以上是生活随笔為你收集整理的Android开发-下载网络图片并显示到本地的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Virtual Audio Cabl
- 下一篇: python安装包