Android: 在多个视图周围放置边框
Android: Putting a border around multiple views
我想弄清楚如何为我正在开发的 android 应用程序的多个视图设置边框。看起来应该很简单,但我似乎无法弄清楚。我的可绘制文件夹中保存了以下 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:width="1dp" android:color="#000000"/>
<padding android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>
</shape>
然后我有多个 TextView 和一个普通视图作为我的主要 Android 应用程序的一部分:
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/backTop"
android:gravity="center"
android:text="@string/title"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvProvHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvTitle"
android:layout_below="@+id/tvTitle"
android:layout_marginEnd="20dp"
android:layout_marginStart="30dp"
android:layout_marginTop="35dp"
android:text="@string/providerHeader"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/tvSigStrHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tvProvHeader"
android:layout_alignBottom="@+id/tvProvHeader"
android:layout_marginStart="50dp"
android:layout_toEndOf="@+id/tvProvHeader"
android:text="@string/sigStrHeader"
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="fill_parent"
android:layout_height="4dp"
android:layout_alignStart="@+id/tvTitle"
android:layout_alignEnd="@+id/tvTitle"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_below="@+id/tvProvHeader"
android:background="#cccccc" />
<TextView
android:id="@+id/tvProv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProvHeader"
android:layout_below="@+id/tvProvHeader"
android:layout_marginTop="16dp"
android:text="" />
<TextView
android:id="@+id/tvProv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv1"
android:layout_below="@+id/tvProv1"
android:text="" />
<TextView
android:id="@+id/tvProv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv2"
android:layout_below="@+id/tvProv2"
android:text="" />
<TextView
android:id="@+id/tvProv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv3"
android:layout_centerVertical="true"
android:text="" />
我想在除第一个 TextView 之外的所有内容周围放置边框(来自可绘制对象)。我看过使用 ViewGroup 但我似乎无法弄清楚如何使它起作用。我该怎么做?
在您的根布局中创建一个 LinearLayout
。然后在该布局中,放置所有 TextViews
。然后将线性布局背景设置为您的可绘制对象。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/backTop"
android:gravity="center"
android:text="@string/title"
android:textAppearance="?android:attr/textAppearanceMedium" />
<LinearLayout
android:orientation="vertical"
android:id="@+id/llLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/your_borderShape>
///All of the other text views here
<LinearLayout/>
顺便说一下,您不必使用 LinearLayout
。 RelativeLayout
是另一个流行的选项。
我想弄清楚如何为我正在开发的 android 应用程序的多个视图设置边框。看起来应该很简单,但我似乎无法弄清楚。我的可绘制文件夹中保存了以下 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:width="1dp" android:color="#000000"/>
<padding android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>
</shape>
然后我有多个 TextView 和一个普通视图作为我的主要 Android 应用程序的一部分:
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/backTop"
android:gravity="center"
android:text="@string/title"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvProvHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvTitle"
android:layout_below="@+id/tvTitle"
android:layout_marginEnd="20dp"
android:layout_marginStart="30dp"
android:layout_marginTop="35dp"
android:text="@string/providerHeader"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/tvSigStrHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tvProvHeader"
android:layout_alignBottom="@+id/tvProvHeader"
android:layout_marginStart="50dp"
android:layout_toEndOf="@+id/tvProvHeader"
android:text="@string/sigStrHeader"
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="fill_parent"
android:layout_height="4dp"
android:layout_alignStart="@+id/tvTitle"
android:layout_alignEnd="@+id/tvTitle"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_below="@+id/tvProvHeader"
android:background="#cccccc" />
<TextView
android:id="@+id/tvProv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProvHeader"
android:layout_below="@+id/tvProvHeader"
android:layout_marginTop="16dp"
android:text="" />
<TextView
android:id="@+id/tvProv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv1"
android:layout_below="@+id/tvProv1"
android:text="" />
<TextView
android:id="@+id/tvProv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv2"
android:layout_below="@+id/tvProv2"
android:text="" />
<TextView
android:id="@+id/tvProv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/tvProv3"
android:layout_centerVertical="true"
android:text="" />
我想在除第一个 TextView 之外的所有内容周围放置边框(来自可绘制对象)。我看过使用 ViewGroup 但我似乎无法弄清楚如何使它起作用。我该怎么做?
在您的根布局中创建一个 LinearLayout
。然后在该布局中,放置所有 TextViews
。然后将线性布局背景设置为您的可绘制对象。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@drawable/backTop"
android:gravity="center"
android:text="@string/title"
android:textAppearance="?android:attr/textAppearanceMedium" />
<LinearLayout
android:orientation="vertical"
android:id="@+id/llLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/your_borderShape>
///All of the other text views here
<LinearLayout/>
顺便说一下,您不必使用 LinearLayout
。 RelativeLayout
是另一个流行的选项。