从此developer guide about Layer-list drawables,
缩放所有可绘制项目以适合包含视图的大小, 默认情况下。因此,将图像放在不同的图层列表中 位置可能会增加视图的大小,一些图像缩放为 合适的。
在第一句中,他们说这些项目是按比例缩放的 容器视图(而不是根据视图缩放视图 包含在其中的项目的大小)。然后他们说那个大小 容器视图可能会增加(这意味着View是 缩放,对吗?)。 第二句也不矛盾 第一个?有人可以解释那里有什么意思吗?
android:drawable
可绘制资源。的必需即可。引用可绘制资源。
...
要避免缩放列表中的项目,请使用 元素内部的元素,用于指定drawable ...
...
例如,以下定义了一个缩放到的项目 适合其容器查看:
<item android:drawable="@drawable/image" />
为避免缩放,以下示例使用具有居中重力的元素:
<item> <bitmap android:src="@drawable/image" android:gravity="center" /> </item>
再次,他们说android:drawable
是必需的属性,然后他们给出了一个不使用此属性的示例。什么是正确的?
要避免缩放列表中的项目,请使用内部的
<bitmap>
元素<item>
元素指定drawable并定义重力 不能扩展的东西,比如“中心”
gravity
如何展开?center
如何使其值不可扩展?
答案 0 :(得分:6)
每个项目都需要一个drawable。位图子元素有效地成为该项的可绘制对象。
如果您有一个空项目(没有可绘制资源),则在尝试加载图层列表时会导致错误。
Gravity有几个选项(例如FILL
,可能是项目的默认重力,或FILL_HORIZONTAL
拉伸项目以填充其容器。“
此外,您可以在项目标记本身上设置android:gravity="center"
(没有<bitmap>
子项),它似乎具有相同的效果(至少在API 23中)。
答案 1 :(得分:0)
除了@Cristopher_Boyd所说的以外。屏幕密度也很重要,因此应为不同的屏幕密度创建不同的位图。如果直接在drawable
文件夹中只有一个图像,则可能无法正确缩放。因此,例如,生成不同的图像,或将单个图像放置在drawables-xxhdpi
文件夹中(但不能放置在drawables
上)。参见此answer。
希望这对某人有帮助
Xavi