如何在Android中通过URL加载ImageView? [关闭]

僤鯓⒐⒋嵵緔 提交于 2020-02-27 01:27:42

如何在ImageView使用URL引用的ImageView


#1楼

一种简单而干净的方法是使用开源库Prime


#2楼

如果您是通过单击按钮加载图像的,则上面接受的答案很好,但是,如果您在新活动中进行图像加载,则会冻结UI一两秒钟。 环顾四周,我发现一个简单的asynctask消除了这个问题。

要使用asynctask,请在活动结束时添加此类:

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;

    public DownloadImageTask(ImageView bmImage) {
        this.bmImage = bmImage;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(result);
    }    
}

并使用以下方法从onCreate()方法进行调用:

new DownloadImageTask((ImageView) findViewById(R.id.imageView1))
        .execute(MY_URL_STRING);

结果是快速加载的活动和一个图像视图,该图像视图稍后根据用户的网络速度显示一秒钟。


#3楼

    String img_url= //url of the image
    URL url=new URL(img_url);
    Bitmap bmp; 
    bmp=BitmapFactory.decodeStream(url.openConnection().getInputStream());
    ImageView iv=(ImageView)findviewById(R.id.imageview);
    iv.setImageBitmap(bmp);

#4楼

此代码已经过测试,可以完全正常工作。

URL req = new URL(
"http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"
);
Bitmap mIcon_val = BitmapFactory.decodeStream(req.openConnection()
                  .getInputStream());

#5楼

这里有很多很好的信息...我最近发现了一个名为SmartImageView的类,到目前为止似乎工作得非常好。 非常容易合并和使用。

http://loopj.com/android-smart-image-view/

https://github.com/loopj/android-smart-image-view

更新 :我最终写了一篇有关此博客文章 ,因此请查看它以获取有关使用SmartImageView的帮助。

第二次更新 :我现在总是为此使用Picasso(请参见上文),并强烈推荐它。 :)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!