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