0

I have a linear layout like below:

<?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:padding="5dip"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:background="@drawable/hello"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="TextView" />

    </LinearLayout>

</LinearLayout>

I've this layer-list that i am setting as background to the linear layout above and expecting that linear layout will change the color accordingly when touch

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

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#e9e9e9" />

            <corners android:radius="3dp" />
        </shape>
    </item>

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
            android:bottom="3dp"
            android:left="1dp"
            android:right="1dp"
            android:state_pressed="true"
            android:top="1dp">
            <shape android:shape="rectangle" >
                <solid android:color="#f224ff" />

                <corners android:radius="3dp" />
            </shape>
        </item>
        <item
            android:bottom="3dp"
            android:left="1dp"
            android:right="1dp"
            android:state_selected="true"
            android:top="1dp">
            <shape android:shape="rectangle" >
                <solid android:color="#00ffff" />

                <corners android:radius="3dp" />
            </shape>
        </item>
        <item
            android:bottom="3dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp">
            <shape android:shape="rectangle" >
                <solid android:color="#ffff00" />

                <corners android:radius="3dp" />
            </shape>
        </item>
    </selector>

</layer-list>

But nothing happens. Am i doing something wrong ??

Usman Riaz
  • 2,920
  • 10
  • 43
  • 66
  • Can you please check http://stackoverflow.com/questions/16976431/change-background-color-of-selected-item-on-a-listview/30050942#30050942 this ? – Hiren Patel Jun 12 '15 at 03:59

1 Answers1

0

Create an xml in drawable like this:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@color/actionbar_blue_20A" /> <!-- focused -->
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/blue" /> <!-- focused and pressed-->
    <item android:state_pressed="true" android:drawable="@color/yellow" /> <!-- pressed -->
    <item android:drawable="@android:color/green" /> <!-- default -->
</selector>

then use it as a background for LinearLayout

Vladislav Kan
  • 354
  • 1
  • 12