是否可以创建一个仅在某些侧面具有描边的 Android 形状对象?
例如我有:
<stroke
android:width="3dip"
android:color="#000000"
android:dashWidth="10dip"
android:dashGap="6dip" />
与此 CSS 类似:
border: 3px dashed black;
如何将描边设置在一侧?这就是我在 CSS 中的做法:
border-left: 3px dashed black;
在 Android XML 中如何做到这一点?
我用这个实现了一个很好的解决方案:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
<item android:top="-1dp" android:right="-1dp" android:left="-1dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke android:width="1dp" android:color="#ffffff" />
</shape>
</item>
</layer-list>
如果您需要的话,这很有效透明背景但仍然是开放的描边颜色(就我而言,我只需要一条底线)。如果您需要背景颜色,您可以添加纯色形状,如 Maragues 答案中所示。
EDIT 1
有时,对于高密度设备,使用低倾角值可能会导致非常细或看不见的笔画或距离。设置 ListView 分隔线时也可能会发生这种情况。
最简单的解决方法是使用 1px 而不是 1dp 的距离。这将使线条在所有密度下始终可见。最好的解决方案是为每个密度创建尺寸资源,以获得每个设备的最佳尺寸。
Edit 2
很有趣,但 6 年后我尝试使用它,但在 Lollipop 设备上无法获得良好的结果。
目前的解决方案可能是使用 9-patch。 Android 应该已经为这个问题找到了一个简单的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)