Android 以编程方式获取维度

Android 以编程方式获取维度,android,xamarin.android,Android,Xamarin.android,我正在用Xamarin.Android编写一个Android应用程序。我试图以编程方式获取维度,如下所示: float dim = Resources.System.GetDimensionPixelSize(Resource.Dimension.my_dim); 我得到了这个错误: 已引发Android.Content.Res.Resources+NotFoundException 但是我看到了其他的问题,所以这应该是可行的…你知道为什么它不会吗?我不熟悉Xamarin.Android,只是

我正在用Xamarin.Android编写一个Android应用程序。我试图以编程方式获取维度,如下所示:

float dim = Resources.System.GetDimensionPixelSize(Resource.Dimension.my_dim);
我得到了这个错误:

已引发Android.Content.Res.Resources+NotFoundException


但是我看到了其他的问题,所以这应该是可行的…你知道为什么它不会吗?

我不熟悉Xamarin.Android,只是标准的Android,但我相信这仍然会回答你的问题

Resources.getSystem()
调用(我假设它相当于
Resources.System
属性)返回一个只能访问系统资源的
Resources
对象。此
资源
对象无法访问应用程序资源或依赖于屏幕和/或屏幕配置的资源。。。包括尺寸

从股票Android文档中:

返回一个全局共享资源对象,该对象仅提供对系统资源(无应用程序资源)的访问,并且未针对当前屏幕进行配置(不能使用维度单位,不会根据方向等进行更改)


如果要访问维度,您需要以
资源.System
以外的方式获得
资源
对象。如果您有
上下文
对象,则可以使用上下文的
资源
公共属性。

正确。从
dimensions.xml
获取维度的正确方法是
float dim=Context.Resources.GetDimension(Resource.dimension.my_dim)