android 网络编程:显示从网络获取的图片



获取网络图片并且显示的步骤:

1.首先得把这个网络图片转换成java的imputstream

2.然后再把这个imputstream转换成一个bitMap

3.bitMap是可以作为参数传给imageView的

这里需要注意的是,高版本的系统当中(3.0以上)在ui线程当中进行网络访问NetworkOnMainThreadException异常。这里有几个解决办法,不过最好放在子线程中进行访问。稍后会改进

下面是代码实现,这里采用HttpURLConnection通信。ps:清单文件需要加入网络权限:<uses-permission android:name="android.permission.INTERNET" />

    package com.jinyan.image;  
    
    import java.io.IOException;  
    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.view.View.OnClickListener;  
   import android.widget.Button;  
   import android.widget.ImageView;  
    
  public class ActivityMain extends Activity {  
  /** Called when the activity is first created. */  
    
  String imageUrl = "http://i.pbase.com/o6/92/229792/1/80199697.uAs58yHk.50pxCross_of_the_Knights_Templar_svg.png";  
  Bitmap bmImg;  
  ImageView imView;  
    
  Button button1;  
    
   @Override  
   public void onCreate(Bundle savedInstanceState) {  
  super.onCreate(savedInstanceState);  
   setContentView(R.layout.main);  
   imView = (ImageView) findViewById(R.id.imview);  
imView.setImageBitmap(returnBitMap(imageUrl));  
 

 }  
  
public Bitmap returnBitMap(String url) {  
 URL myFileUrl = null;  
 Bitmap bitmap = null;  
 try {  
 myFileUrl = new URL(url);  
 } catch (MalformedURLException e) {  
 e.printStackTrace();  
}  
 try {  
 HttpURLConnection conn = (HttpURLConnection) myFileUrl  
  .openConnection();  
 conn.setDoInput(true);  
 conn.connect();  
 InputStream is = conn.getInputStream();  
 bitmap = BitmapFactory.decodeStream(is);  
 is.close();  
} catch (IOException e) {  
  e.printStackTrace();  
  }  
  return bitmap;  
 }  
  
}  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值