这是我的函数的一部分,它将图像分配给我的ImageView。我无法让它显示图像。我的文件列在资产/标志/“图像名称”下。这段代码直接来自我的教科书,并进行了一些小调整以适合我的代码。我很感激帮助。
String nextImage = signNames.remove(0);
AssetManager assets = getAssets();
InputStream stream;
try{
stream = assets.open("signs/"+nextImage + ".gif");
Drawable sign = Drawable.createFromStream(stream,nextImage +".gif" );
signImageView.setImageDrawable(sign);
}
catch(IOException e){
Log.e(TAG, "Error loading " +nextImage, e);
}
答案 0 :(得分:1)
我认为你想要做的事情有一个更简单的习惯用法。无需流式传输想要显示的图像。只需将图像放在res/drawable
(或res/drawable-hdpi
等)中即可。然后简单地说:
signImageView.setImageResource(R.drawable.myImage)
如果你需要从动态字符串中获取资源:
int id = getResources().getIdentifier("yourpackagename:drawable/" + nextImage, null, null);
signImageView.setImageResource(R.drawable.myImage)
这假设您的signImageView确实是ImageView
。