我有一些ListView。其中的所有项目都是矩形,但顶部有圆角,如this照片所示。为了创建它,我用拐角剪切了顶部条纹并将其保存为 item_bg_white_top 图像,并将1px高度的条纹保存为 item_bg_white_line 图像。这就是我构建它的方式。
点击ltest
布局时,我想制作闪光效果,就像点击ListView项目一样。
我怎么能这样做?
我在ltest
上尝试过以下代码,但它没有帮助。当我在ltest_inner
上尝试此代码时,它只是将其背景更改为黑色。
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" />
答案 0 :(得分:0)
您要做的是设置一个选择器并将其用作背景的drawable。
在drawable文件夹中创建一个xml文件,并为其添加一个选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/disabled_pressed_image" />
<item android:state_enabled="false" android:state_focused="true" android:drawable="@drawable/enabled_focused_image" />
<item android:state_enabled="false" android:drawable="@drawable/enabled_image" />
<item android:state_focused="true" android:drawable="@drawable/focused_image" />
<item android:state_pressed="true" android:drawable="@drawable/pressed_image" />
<item android:drawable="@drawable/default_image" />
</selector>
上面的drawables参考图像也在你的drawable文件夹中。您不必实现所有状态。这些只是一些可能的组合。
然后将其作为线性布局的背景附加:
<LinearLayout
android:id="@+id/ltest"
android:layout_width="300dp"
android:layout_height="33dp"
android:background="@drawable/selector_file_name"
android:orientation="vertical">
其中,选择器文件名只是您为上面提到的选择器xml文件指定的名称。
还要考虑删除内部LinearLayouts。您可以使用9-patch执行您要执行的操作,然后您将只拥有一个LinearLayout(如果它不会托管其他视图,您可以将其更改为ImageView)。