-1

我正在做一个项目,我需要显示图像按钮,其中一些图像保存在 sd 卡或 URL 中。我怎样才能做到这一点?或者什么是最佳实践?目标是更改按钮上的图像,仅替换 sd 卡中的文件。如果我不知道将来会显示哪些图像,还有其他解决方案吗?谢谢

4

2 回答 2

1

以下是如何将图像从 URL 加载到 Drawable 对象中:

InputStream is = (InputStream) new URL("http://my.url/path/to/image").getContent();
Drawable buttonBg = Drawable.createFromStream(is, null);

然后将其设置为背景:

button.setBackgroundDrawable(buttonBg);

或 API 16+ 使用:

button.setBackground(buttonBg);

如果要从文件中读取,请使用 FileInputStream,如下所示:

FileInputStream fis = openFileInput("/my/path/to/image"); 
Drawable buttonBg= Drawable.createFromStream(fis, null);
于 2013-05-30T21:42:46.180 回答
0

@carmex 解决了:



    ImageButton box1 = (ImageButton)findViewById(R.id.box1);
    Drawable drawable = GetImg("path/to/image.jpg"); 
    box1.setBackground(drawable); 


    private Drawable GetImg(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("Err="+e); return null; 
    } 
    }

多谢。

于 2013-05-31T15:29:32.003 回答