1. 程式人生 > >ImageView訪問網路圖片資源的方法

ImageView訪問網路圖片資源的方法

//樓主PS:此方法只是個粗略的獲取方法,請求網路資料是還是非同步請求才不會導致ANR。

package com.android.antking.imageview; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory;
import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; public class MainActivity extends Activity { //定義一個圖片顯示控制元件 private ImageView imageView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); //圖片資源 String url = "http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690"; //得到可用的圖片 Bitmap bitmap = getHttpBitmap(url); imageView = (ImageView)this.findViewById(R.id.imageViewId); //顯示 imageView.setImageBitmap(bitmap); } /**
* 獲取網落圖片資源 * @param url * @return */ public static Bitmap getHttpBitmap(String url){ URL myFileURL; Bitmap bitmap=null; try{ myFileURL = new URL(url); //獲得連線 HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection(); //設定超時時間為6000毫秒,conn.setConnectionTiem(0);表示沒有時間限制 conn.setConnectTimeout(6000); //連線設定獲得資料流 conn.setDoInput(true); //不使用快取 conn.setUseCaches(false); //這句可有可無,沒有影響 //conn.connect(); //得到資料流 InputStream is = conn.getInputStream(); //解析得到圖片 bitmap = BitmapFactory.decodeStream(is); //關閉資料流 is.close(); }catch(Exception e){ e.printStackTrace(); } return bitmap; } }