我想在listview周围放一个边框,这个边框有几个像素宽。我想要它来浏览整个listview文章。我怎样才能做到这一点?感谢
答案 0 :(得分:87)
另一种方法是创建一个可以重复使用的边框资源,这也意味着你不需要创建额外的布局来实现它。
创建可绘制资源
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<!-- use this for transparent -->
<!-- <solid android:color="#00000000" /> -->
<!-- use this for a background colour -->
<solid android:color="#FFF" />
<stroke android:width="2dip" android:color="#FF0000" />
</shape>
然后将其设置为列表视图背景
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/border_ui" />
答案 1 :(得分:17)
首先采用LinearLayout并使用某种颜色分配该线性布局,并在该线性布局中获取列表视图。为列表视图设置android:layout_margin="10dp"
属性。这意味着在所有4个方面将留下10dp的空间。这显示为列表视图的边框。
答案 2 :(得分:13)
最简单的方法:
<ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="0dp" android:divider="#FFCC00" android:dividerHeight="2dp" android:layout_weight="1" />
答案 3 :(得分:1)
你应该使用9 Patch张图片。它们可以让你创建任何你喜欢的背景,包括边框。该链接解释了所有。要验证此处是bordered list的图像。
Here是我用来制作边框的9张补丁图片的图片。
答案 4 :(得分:1)
Though its long time the question posted, but hope it may help new comer !!!
Create **back.xml** under drawable folder of your project!!!
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<!-- use this for transparent -->
<!-- <solid android:color="#00000000" /> -->
<!-- use this for a background colour -->
<solid android:color="#FFF" />
<stroke android:width="4dip" android:color="#FFCC00" />
</shape>
Now set the same to your listview layout as background .
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/colorWhite"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header"
android:textSize="40dp" />
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
**android:background="@drawable/back"** />
</LinearLayout>
so it look like as following :
[![listview with background border][1]][1]
Here the border will around your total list view, not around each view.
TO give **separate border of your listview** do the bellow thing :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/colorWhite"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header"
android:textSize="40dp" />
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/back"
android:divider="#FFCC00"
android:dividerHeight="2dp"/>
</LinearLayout>
and the UI will appear will comes like bellow: [![listview with background of each view][2]][2]
[1]: https://i.stack.imgur.com/n2jGa.png
[2]: https://i.stack.imgur.com/Btamf.png
答案 5 :(得分:-8)
您也可以像
那样做边框<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:background="@drawable/border_ui" />