我能够为线性布局绘制边框,但它被绘制在所有方面。我只想将其限制在右侧,就像您在 CSS 中所做的那样(border-right:1px solid red;)。
我已经尝试过了,但它仍然吸引了各方:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <stroke android:height="2dp" android:width="2dp" android:color="#FF0000" /> <solid android:color="#000000" /> <padding android:bottom="0dp" android:left="0dp" android:right="1dp" android:top="0dp" /> <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:radius="1dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" /> </shape> </item>
关于如何做到这一点的任何建议?
顺便说一句,我不想使用将宽度为 1dp 的视图放在所需一侧的技巧。
您可以使用它来获取一侧的边框
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#FF0000" /> </shape> </item> <item android:left="5dp"> <shape android:shape="rectangle"> <solid android:color="#000000" /> </shape> </item> </layer-list>
已编辑
由于包括我在内的许多人都希望有一个带有透明背景的一侧边框,我已经实现了一个BorderDrawable可以像我们使用 css 一样为我提供不同大小和颜色的边框。但这不能通过 xml 使用。为了支持 XML,我添加了一个BorderFrameLayout可以包装您的布局的方法。
BorderDrawable
BorderFrameLayout
请参阅我的github以获取完整的源代码。