选项1:可绘制形状
如果要在可以设置背景的布局或视图周围使用边框,这是最简单的选项。在drawable
看起来像这样的文件夹中创建一个XML文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#8fff93" />
<stroke
android:width="1px"
android:color="#000" />
</shape>
solid
如果您不想填写,可以将其删除。这组background="@drawable/your_shape_drawable"
在您的布局/视图。
选项2:背景视图
这是我在中使用的一个小技巧RelativeLayout
。基本上,在要提供边框的视图下有一个黑色正方形,然后对该视图进行填充(不是边距!),这样黑色正方形就会在边缘显示出来。
显然,这仅在视图没有透明区域的情况下才能正常工作。如果确实如此,我建议您编写一个BorderView
仅绘制边框的自定义-它应该只有几十行代码。
<View
android:id="@+id/border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/image"
android:layout_alignLeft="@+id/image"
android:layout_alignRight="@+id/image"
android:layout_alignTop="@+id/main_image"
android:background="#000" />
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_...
android:padding="1px"
android:src="@drawable/..." />
如果你想知道,它确实与工作adjustViewBounds=true
。但是,如果您想整体使用背景,则此方法无效RelativeLayout
,因为存在一个错误,该错误使您无法RelativeLayout
用填充View
。在这种情况下,我建议使用Shape
drawable。
选项3:9片
最后一种选择是使用9补丁可绘制对象,如下所示:
您可以在可以设置的任何视图上使用它android:background="@drawable/..."
。是的,它确实必须是6x6-我尝试了5x5,但没有用。
这种方法的缺点是您不能很容易地更改颜色,但是如果您想要精美的边框(例如,仅此顶部和底部的边框,如本问题所示),则可能无法使用Shape
drawable 进行更改。,它不是很强大。
选项4:额外的意见
如果您只需要视图上方和下方的边框,我会忘记提及这个非常简单的选项。您可以将视图垂直放置LinearLayout
(如果尚未放置),然后View
在其上方和下方添加empty ,如下所示:
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>