ImageView的AssetManager和InputStream

时间:2014-03-08 17:18:07

标签: android android-imageview

这是我的函数的一部分,它将图像分配给我的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);
    }

1 个答案:

答案 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)

see here

这假设您的signImageView确实是ImageView