我目前有一个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 有任何想法吗?谢谢!
答案 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