I have some kind ListView. All items in it are in rectangle shape, but the top one has round corners as shown in this photo. To create it I’ve cut the top stripe with corners and saved it as item_bg_white_top image and a stripe with 1px height saved as item_bg_white_line image. And this is how I’ve constructed it.
I want to make flash effect when clicking on ltest layout just like clicking on ListView item.
How I can do this?
I’ve tried the code below on ltest but it it didn’t helped. When I tried this code on ltest_inner it just changed its background to black.
final LinearLayout ll = (LinearLayout)findViewById(R.id.ltest);
ll.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ll.setBackgroundResource(android.R.drawable.list_selector_background);
}
});
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/ltest"
android:layout_width="300dp"
android:layout_height="33dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ltest_inner"
android:layout_width="300dp"
android:layout_height="8dp"
android:background="@drawable/item_bg_white_top" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="25dp"
android:background="@drawable/item_bg_white_line_repeat" >
</LinearLayout>
</LinearLayout>
item_bg_white_line_repeat.xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/item_bg_white_line"
android:tileMode="repeat" />
What you want to do is set up a selector and use it as the drawable for the background.
Create an xml file in your drawable folder and add a selector to it:
The drawables above reference images also in your drawable folder. You don’t have to implement all the states. Those are just some possible combinations.
Then attach this as the background to your Linear Layout:
where selector file name is simply the name you gave to the selector xml file I mentioned above.
Also consider removing the inner LinearLayouts. You can do what you are trying to do with a 9-patch, then you’ll only have the one LinearLayout (which you could just change to an ImageView if it is not going to host other Views).