我有一个小查询,是否有可能在每次通过互联网启动应用程序时动态获取图像,然后可以使用该图像在UI上显示(通过xml文件)如果有这个请告诉我可以在android和任何示例代码中实现。 谢谢&问候。
答案 0 :(得分:1)
在这种情况下,最好的方法是通过HTTP GET加载图像,将其存储在Bitmap
对象中,并以编程方式注入布局中定义的ImageView
元素。
您无法覆盖资源图片,因此无法使用@drawable
。
您可以使用loadBitmap
方法按网址加载图片并将其存储在Bitmap
中:How to load an ImageView by URL in Android?
接下来就是将其注入ImageView
:
ImageView image = (ImageView) findViewById(R.id.image);
Bitmap bitmap = loadBitmap("http://www.android.com/images/logo.png");
image.setImageBitmap(bitmap);
答案 1 :(得分:0)
不可能通过XML。
如果当时没有可用的互联网访问,我建议使用安慰剂位图。下载时使用AsyncTask。
new GetAndSetBitmap.execute(url)
private class GetAndSetBitmap extends AsyncTask<String, Void, Bitmap>
{
protected Bitmap doInBackground(String... urls)
{
Bitmap bitmap = loadBitmap(url[0]);
// Used the loadBitmap from other answer. Anything goes wrong
// load a local resource with the same dimensions.
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bm)
{
yourImageView.setImageBitMap(bm);
}
}
答案 2 :(得分:0)
Guys找到了更好的解决方案
try {
ImageView i = (ImageView)findViewById(R.id.image);
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
i.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}