try {
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStrea (input);
return bitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
package com.example.test;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v4.util.LruCache;
import android.util.Log;
import android.widget.ImageView;
import java.io.InputStream;
import java.net.URLConnection;
/**
* 遠端下載圖片
*
* @author Alan
* @since 2013/10/05
*/
public class ImageDownloadTask extends AsyncTask<string void bitmap> {
private static final String LOG_TAG = ImageDownloadTask.class.getName();
private ImageView bmImage;
private static LruCache imageCache;
private static final int CACHE_SIZE = 1; //1MB
public ImageDownloadTask(ImageView bmImage) {
this.bmImage = bmImage;
// 設定圖片快取
if (imageCache == null) {
imageCache = new LruCache(CACHE_SIZE * 1024 * 1024);
}
}
protected Bitmap doInBackground(String... params) {
if (imageCache.get(params[0]) == null) {
android.graphics.Bitmap mIcon11 = null;
URLConnection urlConnection = null;
InputStream in = null;
try {
urlConnection = new java.net.URL(params[0]).openConnection();
urlConnection.setConnectTimeout(3 * 1000);
urlConnection.setReadTimeout(10 * 1000);
in = urlConnection.getInputStream();
mIcon11 = BitmapFactory.decodeStream(in);
// 記錄已下載圖片的快取
imageCache.put(params[0], mIcon11);
in.close();
} catch (Exception e) {
Log.e(LOG_TAG, e.getMessage());
e.printStackTrace();
}
return mIcon11;
} else {
return (Bitmap) imageCache.get(params[0]);
}
}
protected void onPostExecute(android.graphics.Bitmap result) {
super.onPreExecute();
// 設定圖片物件
bmImage.setImageBitmap(result);
this.bmImage = null;
}
}
ImageView iv = new ImageView(this);
ImageDownloadTask imageDownloadTask = new ImageDownloadTask(iv);
imageDownloadTask.execute(imageUrl);
Oct 18th, 2013 12:22:00am