根据屏幕大小指定ConstraintLayout的constraintDimensionRatio

时间:2018-10-16 11:33:29

标签: android android-resources android-constraintlayout

我有一个布局,其中的图像需要根据屏幕尺寸以不同的宽高比显示。

我试图这样做

app:layout_constraintDimensionRatio="@dimen/image_ratio"

然后在各种dimens.xml文件中为适当的屏幕尺寸指定不同的比率。

<dimen name="image_ratio">3:1</dimen>

我完全按照我在布局编辑器中的要求工作了,但是它无法编译。

Android resource compilation failed
Output: [...]/values-sw600dp-v13.xml:11: error: invalid dimen.

不确定为什么在第11行显示错误,因为问题尺寸实际上在第58行

我认为愚蠢的是,看起来像它的东西应该可以工作,并且确实可以在编辑器中工作,但是到了编译的时候却不起作用。

那么我应该如何获得这个结果?

2 个答案:

答案 0 :(得分:1)

layout_constraintDimensionRatio属性需要 string属性作为与布局尺寸的比例(即1:1)或高度或宽度(例如W,1:2或H,1: 2)。

dimens.xml 需要声明应用所需的尺寸,因此您需要将特定属性添加到 strings.xml

答案 1 :(得分:0)

感谢Jeel Vankede,我解决了这个问题。 他提出的从strings.xml提供比率的解决方案是可行的,但会为所有不同的屏幕尺寸生成一组额外的strings.xml文件。

这是不必要的,因为您可以将字符串存储在现有的dimens.xml文件中。

我只需将<dimen>标签的<string>标签切换出来,然后在布局文件中使用@string/image_ratio