如何将一串网址转换为可绘制的?

时间:2016-11-05 17:08:09

标签: android android-imageview android-drawable android-image android-webservice

我目前有一个arraylist如下:

private void loadImages() {
        images = new ArrayList<>();

        images.add(getResources().getDrawable(R.drawable.imag1));
        images.add(getResources().getDrawable(R.drawable.imag2));
        images.add(getResources().getDrawable(R.drawable.imag3));
}

我希望能够将url转换为这些drawable,以便:

 drawable1 = "http.someimage.com/image.png"
 drawable2 = "http.someimage.com/newimage.png"

接着是

private void loadImages() {
            images = new ArrayList<>();

            images.add(getResources().getDrawable(drawable1));
            images.add(getResources().getDrawable(drawable2));
...etc    }

有什么简单的方法可以解决这个问题吗?我绝对想坚持drawables,但我找不到任何方法将url转换为drawable 有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有图片的网址,则需要先下载。

您无法将网址“转换”为可绘制的内容。

你需要这样的东西:

URL url = new URL("http.someimage.com/image.png"); 
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());

然后,如果需要将图像添加到ImageView对象中,可以调用方法.setImageBitmap(bmp)。 否则有一些方法可以从Bitmap中提取Drawable对象 你可以查看之前的answer。然后,一旦你有了drawable,你可以将它添加到你的arraylist。

希望我的问题是正确的

P.S。:确保不要在主线程上执行此操作,因为它是网络操作!使用线程或asynctask