2

我有一个小问题,是否可以在每次通过 Internet 启动应用程序时动态获取图像,然后该图像可用于在 UI 上显示(通过 xml 文件)请让我知道这是否可以实现在 android 和任何示例代码中。感谢和问候。

4

3 回答 3

1

在这种情况下,最好的方法是通过 HTTP GET 加载图像,将其存储在Bitmap对象中并以编程方式注入到ImageView布局中定义的元素中。

你不能覆盖资源图像,所以你不能使用@drawable.

在这里,您有loadBitmap通过 url 加载图像并将其存储在的方法BitmapHow 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);
于 2012-08-31T06:07:24.627 回答
0

不可能通过 XML。

如果当时没有可用的 Internet 访问,我也建议使用安慰剂位图。下载时使用 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);
       }
}
于 2012-08-31T06:25:37.180 回答
0

伙计们找到了更好的解决方案

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();
}
于 2012-08-31T09:48:45.233 回答