ImageView显示网络图片

package com.example.urlimage;  

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;  

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;  

public class MainActivity extends Activity {  

    //声明地址
    private Button btn;
    private ImageView img;
    private String url = "http://imgstore04.cdn.sogou.com/app/a/100520024/877e990117d6a7ebc68f46c5e76fc47a";  

    //在消息队列中实现对控件的更改
    private Handler handle = new Handler() {
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case 0:
                System.out.println("111");
                Bitmap bmp=(Bitmap)msg.obj;
                img.setImageBitmap(bmp);
                break;
            }
        };
    };  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  

        btn = (Button) findViewById(R.id.btn);
        img = (ImageView) findViewById(R.id.img);  

        btn.setOnClickListener(new View.OnClickListener() {  

            @Override
            public void onClick(View v) {
                //新建线程加载图片信息,发送到消息队列中
                new Thread(new Runnable() {  

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Bitmap bmp = getURLimage(url);
                        Message msg = new Message();
                        msg.what = 0;
                        msg.obj = bmp;
                        System.out.println("000");
                        handle.sendMessage(msg);
                    }
                }).start();
            }
        });
    }  

    //加载图片
    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);
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bmp;
    }
}  
时间: 2024-10-10 14:40:06

ImageView显示网络图片的相关文章

Android使用ImageView显示网络图片

本案例使用ImageView 简单的实现了网络图片的调用.当中注意事项.由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章?Android中使用HttpClient实现HTTP通信效果?,因此.须要注意配置网络权限问题.以及须要使用新线程及Handler来更新Activity,不然会直接报错Not Main Thread 看实例: MainActivity.java package com.example.imageview; import android.

学习Android之SimpleAdapter显示网络图片

效果图: 此程序主要的知识点是:SimpleAdapter本身是不支持网络图片的, 如果在Map.put(a,b)中 b为一个Bitmap,程序不会报红色字体,而是在控制台输出绿色的字体,如下 05-10 15:46:45.474: I/System.out(846): resolveUri failed on bad bitmap uri: [email protected] 要想实现显示网络图片其实很简单,使用SimpleAdapter中的方法simpleAdapter.setViewBin

Android 本地加载网页与显示网络图片

有时候需要在应用程序里展示一些网页,但是需求里又明确指出,不允许打开系统浏览器,显然也不可能去编写一个浏览器出来,这时就需要使用 WebView控件,借助它我们就可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种各样的网页. 由于程序用到了网络功能,而访问网络是需要声明权限的,因此首先得修改 AndroidManifest.xml 文件,并加入声明权限: <uses-permission android:name="android.permission.INTERNET"

Android 使用URL显示网络图片

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39271479 URL对象中前而几个方法都非常容易理解,而该对象提供的openStream()可以读取该 URL资源的InputStream,通过该方法可以非常方便地读取远程资源. 下面的程序示范如何通过URL类读取远程资源: 1)只显示网络图片 2)显示并下载网络图片 1)只显示网络图片 a) activity_main.xml <RelativeLayout xmlns:a

图片轮播_支持显示网络图片及下载图片至SD后再显示

现在的移动应用, 很常见的一个交互效果就是在首页顶部添加图片轮播的控件, 焦点图可以放入广告, 也可以放入文章的内容图片, 它们不断自动切换, 点击焦点图即跳至对应的界面. 交互效果很棒. 做图片轮播的效果, 方法并不少. 本文使用了常见的viewpager 去实现. 支持显示网络图片下载在缓存显示, 如果有SD卡则默认将图片下载至SD卡中再显示本地的图片. 其实网上这类代码已经很多,  应该也有很多写得比我好. 今天有点时间, 就做了个来练手, 顺便写下自己第一篇原创文章. 敲代码之前也参考了

Android 显示网络图片

本文内容 环境 演示显示网络图片 本文演示 Android 如何显示网络图片.学习一门新的语言,最好办法就先了解该语言的语法和库,以及设计思想,再着手现实一些常用功能,毕竟以后用该语言是要写程序的,而程序说白了,就是一个个功能点. 环境 Windows 2008 R2 64 位 Eclipse ADT V22.6.2,Android 4.4.3 三星 SM-G3508   演示显示网络图片 利用一个新线程加载并显示网络图片,并使用 handler 传递消息,若无异常,则用 Toast 现实"加载

winform下 PictureBox 显示网络图片

Image pic = new Image.FromStream(WebRequest.Create("http://x.com/x.jpg").GetResponse().GetResponseStream()); picturebox1.Image = pic 对读取错误的处理没有加 winform下 PictureBox 显示网络图片,布布扣,bubuko.com

ImageView 显示本地和网上的图片(转)

Android用ImageView显示本地和服务器的图片(转) ImageView是Android程序中经常用到的组件,它将一个图片显示到屏幕上.在UI xml定义一个ImageView如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.myimage); ImageView image1 = (ImageView) fi

ImageView显示不出来图片

问题?? 用ImageView控件方法:public void setImageBitmap(Bitmap bm)来显示生成的bimap,结果在图片显示区域显示一片空白,而且其他控件颜色没变化,造成Imageveiw显示图片不出来的假象. 问题原因是: 布局背景我设置为白色,而解码生成的bitmap刚好在白色背景下显示看不到一点图片痕迹,在显示图片的区域看到的只是一片空白,至于为什么bitmap在白色先显示不出来的原因暂还没想通.若你也遇到类似问题建议跟换背景试试. 解决方法是:将布局文件中Im