获取可绘制资源

8

我正在使用MonoDevelop for Android,并试图从资源文件夹中的图像创建一个Drawable变量。

我在Resources\drawable文件夹中有以下文件:

Icon.png
monkey.png
monkeyPurple.png

我该如何创建一个Drawable变量,其中包含从这些文件中获取的图像?

我尝试了以下代码:

Drawable icon = Drawable.CreateFromPath("Icon.png");

然而,这种方法并不起作用。如果这是从文件加载图像的正确方法,我是否需要拥有完整的文件名和路径?我已经尝试了许多组合来访问图像,但没有运气。

我还尝试了以下方法:

Drawable icon = R.getResources().getDrawable(R.drawable.Icon); 
Drawable icon = R.getResources().getDrawable(R.drawable.monkey);

没有运气。

我可以请你帮忙正确创建一个包含来自资源文件夹中图像的Drawable变量吗?

谢谢。

2个回答

13

你非常接近了,但我认为你混淆了Java和C#。

您可以使用Resource 结构来访问此内容。我在下面放置了Mono for Android和Java版本的参考资料,但如果您正在使用Mono for Android,则需要C#版本。

Mono for Android(C#)

Drawable icon = Resources.GetDrawable(Resource.Drawable.Icon);

Android SDK(Java)

Resources res = getResources();
Drawable icon = res.getDrawable(R.drawable.Icon);

4
自Android API版本21起,旧方法已被弃用,改为以下方法:
Drawable icon = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.Icon, null);

详情请查看原始Android答案


1
在这种情况下,“Resources”是什么? - Euridice01

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接