垂直线和圆形视图

时间:2014-10-01 06:50:33

标签: android xml android-layout

我试图在ImageViews之间插入一条垂直线来展示流程。

这是我想要实现的目标,

enter image description here

这是我现在拥有的

enter image description here

背景

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:left="44dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/darker_gray" />
            <padding android:left="1dp" />
        </shape>
    </item>
    <item android:left="44dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
        </shape>
    </item>
</layer-list>

项目布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/progress_item_bg"
    android:orientation="horizontal"
    android:padding="10dp">

    <ImageView
        android:src="@drawable/circle"
        android:layout_weight="20"
        android:layout_width="0dp"
        android:layout_height="match_parent" />
    <TextView
        android:id="@+id/label"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="80"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingStart="10dp"
        android:text="Group" />


</LinearLayout>

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

Is there a better way to do this

您可以使用TextView包含左图像,并通过简单地使用复合drawable为自己保存每行的视图:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/progress_item_bg"
    android:padding="10dp"
    >
    <TextView
        android:id="@+id/label"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawableLeft="@drawable/circle"
        android:drawablePadding="8dp"
        android:gravity="center_vertical"
        android:paddingLeft="10dp"
        android:paddingStart="10dp"
        android:text="Group"
    />
</RelativeLayout>

要设置drawable via代码,请使用setCompundDrawablesWithIntrinsicBounds():http://developer.android.com/reference/android/widget/TextView.html#setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)

您可能还想在垂直线上添加一些顶部和底部边距,并使背景颜色透明,而不是白色(因此您也可以在深色容器背景颜色上使用它)。