填充不会影响XML布局中的<形状>
我正在尝试在XML文件/布局中声明的<shape>
设置填充。 但无论我设置什么,没有任何改变与填充有关。 如果我修改任何其他属性,我看到在UI上的影响。 但是它不适用于填充。 您能否就可能的原因提出build议?
这里是我想要的样式的XML形状:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="1dp" android:color="#ffffff" android:dashWidth="2dp" /> <solid android:color="@color/button_white_cover" /> <corners android:radius="11dp" /> <padding android:left="1dp" android:top="20dp" android:right="20dp" android:bottom="2dp" /> </shape>
我终于解决了我的问题与填充。
所以在这里填充对形状没有影响。 而不是这个,你将不得不在其他可以使用它的drawable中使用填充。 所以,我有一个drawable使用的形状,在那里我做了以下:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_below"/> <item android:top="10px" android:right="10px" android:drawable="@drawable/shape_cover"/> </layer-list>
所以,正如你可以在第二个<item>
-element中看到的,我设置了填充(顶部和右侧)。 之后,一切正常。
谢谢。
正如一些评论所指出的,最好的方法是将<shape>
包装在<item>
元素中,并设置填充。 然而,还有其他选项可用,详情请参阅下面的链接。 例如
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"> <shape android:shape="rectangle"> ... </shape> </item> </layer-list>
根据您的需要,而不是使用图层列表,您可以使用以下任何可绘制types:
- 层列表
- select
- 级列表
- 过渡
有关可用的可绘制types的更多信息,请参阅此android文档
资料来源:
- DustinB的评论
- Yahel的回答
- user924的评论
- 如何在Android中添加填充到渐变<shape>?
Lyobomyr的答案是有效的,但是这里应用了相同的解决scheme,但是没有创build新的drawable的开销,因此最小化了文件混乱:
如何在Android中添加填充到渐变<shape>?
我解决了这样的问题:
<shape android:shape="oval" > <stroke android:width="4dp" android:color="@android:color/transparent" /> <solid android:color="@color/colorAccent" /> </shape>
只是添加了一个透明的笔触。