Android layout 右侧具有不同背景颜色的圆形列表项

Android layout 右侧具有不同背景颜色的圆形列表项,android-layout,Android Layout,这就是我努力实现的目标: 文本的数量将决定列表项中有多少部分的背景颜色为蓝色 我试图用选择器来实现这一点,但最终我得到了一个蓝色的正方形,其中最末端是灰色的。像这样: 你知道如何用一种简单的方法来实现吗?也就是说,最好只使用XML 这是我的方法(第二张图): 以及: 您可以通过以下代码获得所需的输出 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools

这就是我努力实现的目标:

文本的数量将决定列表项中有多少部分的背景颜色为蓝色

我试图用选择器来实现这一点,但最终我得到了一个蓝色的正方形,其中最末端是灰色的。像这样:

你知道如何用一种简单的方法来实现吗?也就是说,最好只使用XML

这是我的方法(第二张图):


以及:



您可以通过以下代码获得所需的输出

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/activity_vertical_margin"
    android:layout_marginEnd="@dimen/activity_horizontal_margin"
    android:layout_marginStart="@dimen/activity_horizontal_margin"
    android:layout_marginTop="@dimen/activity_vertical_margin"
    android:background="@drawable/roundcorner_selector"
    android:clickable="true"
    android:descendantFocusability="blocksDescendants" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@drawable/half_roundcorner_selector"
        android:padding="10dp"
        android:text="TEdasdadaXT" />

</RelativeLayout>

圆角选择器:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners android:radius="10dp" />

    <solid android:color="@android:color/darker_gray" />

</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners
        android:bottomRightRadius="10dp"
        android:topRightRadius="10dp" />

    <solid android:color="@android:color/holo_blue_light" />

</shape>

半圆形拐角选择器:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners android:radius="10dp" />

    <solid android:color="@android:color/darker_gray" />

</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <corners
        android:bottomRightRadius="10dp"
        android:topRightRadius="10dp" />

    <solid android:color="@android:color/holo_blue_light" />

</shape>

您可以根据自己的要求对此进行修改


在您的代码中,您需要为
TextView
设置自定义绘图。因为通过将颜色设置为背景,它将成为正方形。

“在代码中,您需要为TextView设置自定义可绘制选项”自定义可绘制选项?您的意思是
setBackgroundResource()
?您是否以编程方式设置
TextView
背景?如果是这样的话,您可以通过setBackgroundResource()设置可绘制的形状。多亏了您的回答,我成功地让它以我想要的方式工作。谢谢:-)我失败的原因是:我的抽屉里有一些填充物。太愚蠢了:-(