我有一个布局,其中的图像需要根据屏幕尺寸以不同的宽高比显示。
我试图这样做
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行
我认为愚蠢的是,看起来像它的东西应该可以工作,并且确实可以在编辑器中工作,但是到了编译的时候却不起作用。
那么我应该如何获得这个结果?
答案 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
。