ImageLoadAsyncTask類
public class ImageLoadAsyncTask extends AsyncTask<String,Void,Bitmap>{
/**
* 定義一個圖片的接口回調
*/
public interface ImageCallBack{
void callBitmap(Bitmap bitmap);
}
//定義變量記住調用者所傳遞進來的回調監聽對象
private ImageCallBack imageCallBack;
//構造方法
public ImageLoadAsyncTask(ImageCallBack imageCallBack){
this.imageCallBack = imageCallBack;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
if(bitmap != null){
//設置圖片 回調回去
imageCallBack.callBitmap(bitmap);
}
}
@Override
protected Bitmap doInBackground(String... params) {
try {
String path = params[0];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5*1000);
connection.setReadTimeout(5*1000);
//服務器響應
int code = connection.getResponseCode();
if(code == HttpURLConnection.HTTP_OK){//判斷服務器是否連接成功並相應
//圖片流
InputStream is = connection.getInputStream();
//將圖片流轉化成Bitmap位圖,返回
return BitmapFactory.decodeStream(is);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Mainactivity類
private ImageView ivIcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivIcon = (ImageView) findViewById(R.id.ivIcon);
}
public void btnLoadImage(View v){
loadImg("http://20.1.3.46:8080/tomcat.png");
}
/**
* 加載圖片
* @param url 圖片地址
*/
private void loadImg(String url){
ImageLoadAsyncTask imageLoadAsyncTask = new ImageLoadAsyncTask(new ImageLoadAsyncTask.ImageCallBack() {
@Override
public void callBitmap(Bitmap bitmap) {
if(bitmap != null){
ivIcon.setImageBitmap(bitmap);
}
}
});
//執行圖片請求
imageLoadAsyncTask.execute(url);
}
這就可以加載出來特別簡單的圖片了。