【问题标题】:Android, Make an image at a URL equal to ImageView's imageAndroid,在与 ImageView 的图像相同的 URL 处制作图像
【发布时间】:2011-03-08 07:35:32
【问题描述】:

我想知道如何使位于特定 URL 的图像与 ImageView 的图像相等?

【问题讨论】:

  • 您的意思是从 URL 加载带有图像的 ImageView 吗?或者将 ImageView 中的图片上传到特定的 URL。

标签: android


【解决方案1】:

下载图像并将其设置为图像视图的内容

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();
}

【讨论】:

  • 非常好的代码哥们,我搜索了很多但没有找到这种简单的例子
  • 编辑:删除了多余的评论! :)
  • 那么为您的解决方案缓存呢?加载的图像在哪里?有没有缓存?
  • 像宝石一样工作!
【解决方案2】:
  // Url = "url of image"
  Drawable drawable = LoadImageFromWebOperations(Url);
  mImageofTheMonth.setImageDrawable(drawable);

private Drawable LoadImageFromWebOperations(String url) {

    try {
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return d;
    } catch (Exception e) {
        System.out.println("Exc=" + e);
        return null;
    }

}

【讨论】:

  • 您认为将图像本地存储在设备上还是仅在线存储图像的 url 更好? (假设图像会一直存在)
【解决方案3】:

由于积分不够加评论,我先发个帖吧……

记得将@primpap 的答案放在AsyncTask doInBackground 中,以防止UI 线程冻结。

【讨论】:

    【解决方案4】:
     public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            ArrayList<ItemDetails> image_details = GetSearchResults();
    
            final ListView lv1 = (ListView) findViewById(R.id.listV_main);
            lv1.setAdapter(new ItemListBaseAdapter(this, image_details));
    
            lv1.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
    
                    // Launching new Activity on selecting single List Item
                    Intent i = new Intent(getApplicationContext(), ItemDetails.class);
    
                    Object o = lv1.getItemAtPosition(position);
                    ItemDetails obj_itemDetails = (ItemDetails)o;
    
                    // sending data to new activity
                    i.putExtra("name", obj_itemDetails.getName());
                    i.putExtra("description", obj_itemDetails.getItemDescription());
                    i.putExtra("imagenumber", obj_itemDetails.getImageNumber());
    
                    **ItemDetails.IMAGE_NUMBER = obj_itemDetails.getImageNumber();**
                    startActivity(i);
                }   
            });
        }
    

    使用静态变量获取图像 ID,然后动态加载。检查 IMAGE_Number。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 2016-02-03
      相关资源
      最近更新 更多