我正在开展一个项目,我需要显示图像按钮,其中一些图像保存在SD卡或网址中。我怎样才能做到这一点?或者什么是最佳实践? 目的是更改按钮上的图像,只更换SD卡中的文件。 如果我不知道将来会显示哪些图像,还有其他解决方案吗? THX
答案 0 :(得分: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);
答案 1 :(得分: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;
}
}
很多。