获取可绘制资源

时间:2012-11-22 01:46:41

标签: c# android xamarin.android drawable android-resources

我正在使用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 个答案:

答案 0 :(得分:11)

你非常接近,但我认为你正在混合使用Java和C#。

您可以使用Resource结构访问此内容。我已将下面的Android和Java版本的Mono用于参考,但在您的情况下,如果您使用Mono for Android,则需要C#版本。

Android的Mono(C#)

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

Android SDK(Java)

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

答案 1 :(得分:4)

从Android API 版本 21 开始,旧方法已弃用,并替换为以下内容:

Drawable icon = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.Icon, null);

有关详细信息,请查看原始Android answer