0

我正在尝试做类似 Wordpress Android 应用程序正在做的事情:https: //play.google.com/store/apps/details?id=org.wordpress.android

我在导航抽屉中有一个列表视图。当使用选择器资源选择项目时,我设法让背景发生变化。如何在所选项目的左侧制作一个小的彩色矩形?就像 wordpress 应用程序一样。

编辑:

我的列表项布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/drawer_background_selector"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/drawer_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="8dp" />

    <TextView
        android:id="@+id/drawer_item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_margin="8dp" />

</LinearLayout>

我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/drawer_selected" android:state_activated="true"/>
    <item android:drawable="@color/drawer_selected" android:state_selected="true"/>
    <item android:drawable="@color/drawer_selected" android:state_pressed="true"/>
    <item android:drawable="@color/drawer"/>
</selector>
4

2 回答 2

2

您可以为此使用图层列表,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:drawable="@color/drawer_selected" />
    <item
        android:drawable="@color/rectangle_color"
        android:left="10dp"/>
</layer-list>

您也可以创建一个 9-patch 图像来跳过过度绘制,但它不是可样式化的,所以我不会去那里。

于 2013-10-08T23:17:46.023 回答
1

使用http://developer.android.com/guide/topics/resources/drawable-resource.html

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
            <solid android:color="LEFT COLOR HERE"/>
        </shape>
    </item>
    <item android:left="5dip">
        <shape android:shape="rectangle">
            <solid android:color="RIGHT COLOR HERE"/>
        </shape>
    </item>
</layer-list>
于 2013-10-08T23:42:01.460 回答