Android ImageView显示Url图片

//网络权限
<uses-permission android:name="android.permission.INTERNET" />

ImageView mImgView;
String url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201707%2F15%2F20170715164510_xm2yL.thumb.400_0.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1623550913&t=d8cae253f81749dbb3da16509d0b1abd" ;
//在消息队列中实现对控件的更改
private Handler handle = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case 0:
                System.out.println("111");
                Bitmap bmp=(Bitmap)msg.obj;
                mImgView.setImageBitmap(bmp);
                break;
        }
    };
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    cropImageView = (CropImageView) findViewById(R.id.cropImageView);
    mImgView = (ImageView) findViewById(R.id.imgView);
    //新建线程加载图片信息,发送到消息队列中
    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;
}

 

Android Studio中,要让ImageView显示网页图片,你需要使用`AsyncTask`或者`Retrofit`等网络请求库来获取图片数据,然后将其设置为ImageView的背景或src属性。这里是一个简单的步骤说明: 1. 首先,确保你的项目包含了网络访问权限,如果需要的话,在AndroidManifest.xml中添加 `<uses-permission android:name="android.permission.INTERNET" />`。 2. 创建一个`ImageLoader`类,通常我们会使用`Volley`、`OkHttp`或第三方库如`Picasso`、`Glide`来加载图片。例如,使用Volley: ```java public class ImageLoader extends AsyncTask<String, Void, Bitmap> { @Override protected Bitmap doInBackground(String... urls) { try { URL url = new URL(urls[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream inputStream = connection.getInputStream(); return BitmapFactory.decodeStream(inputStream); } catch (IOException e) { e.printStackTrace(); return null; } } // UI线程更新ImageView @Override protected void onPostExecute(Bitmap bitmap) { if (bitmap != null) { ImageView imageView = findViewById(R.id.imageView); imageView.setImageBitmap(bitmap); } else { imageView.setImageResource(R.drawable.default_image); } } } ``` 3. 调用`ImageLoader`实例来加载图片,比如从URL加载: ```java new ImageLoader().execute("http://example.com/image.jpg"); ``` 4. 使用`Glide`或`Picasso`则更简洁: ```java Glide.with(context).load("http://example.com/image.jpg").into(imageView); // 或者 Picasso.get().load("http://example.com/image.jpg").into(imageView); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值