首页 > 系统 > Android > 正文

Android获取网络图片并显示的方法

2019-10-21 21:35:36
字体:
来源:转载
供稿:网友

本文实例为大家分享了Android获取网络图片并显示的具体代码,供大家参考,具体内容如下

使用 HttpURLConnection 获得连接,再使用 InputStream 获得图片的数据流,通过 BitmapFactory 将数据流转换为 Bitmap,再将 Bitmap 通过线程的 Message 发送出去,Handler 接收到消息就会通知 ImageView 显示出来。

Android,网络图片

记得要在manifest文件中添加 < uses-permission android:name=”android.permission.INTERNET” />上网权限,不然无法显示图片。

工程文件结构:

Android,网络图片

布局文件中就一个 ImageView 用来显示图片,一个 Button 用来获取图片。

MainActivity.java

public class MainActivity extends AppCompatActivity {  Button button;  ImageView imageView;  String url = "http://i4.buimg.com/dccba6282641a9e0.jpg";  //String textURL = "http://192.168.1.104:8080/add.jsp";  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    button = (Button) findViewById(R.id.button);    imageView = (ImageView) findViewById(R.id.imageView);    button.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        new Thread(new Runnable() {          @Override          public void run() {            Bitmap bmp = getURLimage(url);            Message msg = new Message();            msg.what = 0;            msg.obj = bmp;            System.out.println("000");            handle.sendMessage(msg);          }        }).start();      }    });  }  //在消息队列中实现对控件的更改  private Handler handle = new Handler() {    public void handleMessage(Message msg) {      switch (msg.what) {        case 0:          System.out.println("111");          Bitmap bmp=(Bitmap)msg.obj;          imageView.setImageBitmap(bmp);          break;      }    };  };  //加载图片  public Bitmap getURLimage(String url) {    Bitmap bmp = null;    try {      URL myurl = new URL(url);      // 获得连接      HttpURLConnection conn = (HttpURLConnection) myurl.openConnection();      conn.setConnectTimeout(6000);//设置超时      conn.setDoInput(true);      conn.setUseCaches(false);//不缓存      conn.connect();      InputStream is = conn.getInputStream();//获得图片的数据流      bmp = BitmapFactory.decodeStream(is);//读取图像数据      //读取文本数据      //byte[] buffer = new byte[100];      //inputStream.read(buffer);      //text = new String(buffer);      is.close();    } catch (Exception e) {      e.printStackTrace();    }    return bmp;  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到Android开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表