ano*_*oot 12 android border android-xml android-drawable
我有:
<stroke android:width="1px" android:color="#A6ACB1"/>
Run Code Online (Sandbox Code Playgroud)
我想从元素的底部(例如)中删除此边框.可能吗?(Eclipse仅建议我:color,width,dashWidth和dashGap).
Jua*_*tés 24
据我所知,没有一种简单的方法可以做到这一点.但是如果你使用带有边框的项目的图层列表,然后使用不希望边框等于边框宽度的所有边的偏移量,那么你就可以实现这一点.
让我为你制作代表无边框底部的xml ..
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Border -->
<item>
<shape>
<solid android:color="#f000"></solid>
</shape>
</item>
<!-- Body -->
<item android:left="2dip"
android:top="2dp"
android:right="2dp">
<shape>
<solid android:color="#ffafafaf"></solid>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我告诉第二个项目是第一个项目,除了底部之外的所有方面都是两个dp(因此底部没有边框结果),你去了:

所以基本上这不是边框本身,它是从下面的形状(虽然你可以添加一个边框,如果你需要虚线或点缀或其他)被第二个项目覆盖,将是按钮的主体.所有在同一个drawable :)
这可以应用于您要删除的任何边框,方法是更改项目插入的值,例如,如果我right将Body项目更改为bottom,则缺少的边框将是右边的边框,因为它是没有插入的边框
tro*_*per 17
这有点像黑客,但可以使用inset带负值的drawable 删除一个或多个边框.包裹的形状以inset及施加负android:insetTop,android:insetBottom,android:insetLeft,或android:insetRight与绝对值等于笔划宽度.

例如,要从具有4dp笔划的矩形中删除底部边框,请使用android:insetBottom值-4dp.
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="-4dp">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<stroke android:width="4dp" android:color="#000000" />
<corners android:radius="4dp" />
</shape>
</inset>
Run Code Online (Sandbox Code Playgroud)
只要形状的角半径小于行程宽度,这似乎就能很好地工作.否则,在应用插图时使用两个值中的较大值(半径),以便完全隐藏相邻边框的圆角部分.
| 归档时间: |
|
| 查看次数: |
13949 次 |
| 最近记录: |