以编程方式获取维度

时间:2018-02-15 19:54:05

标签: android xamarin.android

我正在使用Xamarin.Android编写Android应用程序。我试图以编程方式获取维度:

float dim = Resources.System.GetDimensionPixelSize(Resource.Dimension.my_dim);

我收到了这个错误:

  

已抛出Android.Content.Res.Resources + NotFoundException

但是我在其他问题上看到这应该有用......任何想法为什么它不会?

1 个答案:

答案 0 :(得分:1)

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

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

从股票Android文档:

  

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

如果您想访问尺寸,则需要以Resources以外的其他方式获取Resources.System对象。如果您有Context个对象,则可以使用上下文的Resources公共属性。