我有:
String uri = "@drawable/myresource.png";
如何在ImageView中加载?this.setImageDrawable?
小智 170
如果你真的需要使用字符串,请尝试这样的事情:
private void showImage() {
String uri = "drawable/icon";
// int imageResource = R.drawable.icon;
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
ImageView imageView = (ImageView) findViewById(R.id.myImageView);
Drawable image = getResources().getDrawable(imageResource);
imageView.setImageDrawable(image);
}
Run Code Online (Sandbox Code Playgroud)
否则我建议你使用R.*这样的参考:
int imageResource = R.drawable.icon;
Drawable image = getResources().getDrawable(imageResource);
Run Code Online (Sandbox Code Playgroud)
Com*_*are 25
首先,不要这样做,因为该@drawable
语法在Java代码中毫无意义.使用int resourceId=R.drawable.myresource
.
如果由于某种原因你结束了资源名称并需要整数ID,请使用getIdentifier()
该Resources
对象.
Ali*_*mli 10
你也可以添加你自己的变量..在我的案例scene.name之间我跟着@pfleidi答案.c代表上下文.
String uri = "drawable/" + scene.name;
int imageResource = c.getResources().getIdentifier(uri, null, c.getPackageName());
imageList.setImageResource(imageResource);
Run Code Online (Sandbox Code Playgroud)
小智 6
早就应该了,但我最喜欢的是使用Context:
context.getApplicationContext().getResources().getDrawable(R.drawable.placeholder_image)
Run Code Online (Sandbox Code Playgroud)
其中placeholder_image是资源的id.在你的情况下,R.drawable.myresource
.
上下文可以是活动或应用程序.无论您身在何处,都可以参考上下文,您可以使用它来获取应用程序的上下文.
归档时间: |
|
查看次数: |
89806 次 |
最近记录: |