如何为线性布局提供两种不同的背景

时间:2012-02-20 06:52:06

标签: android android-linearlayout statelistdrawable

我有一个线性布局,并在其上实现了onClickListener。 现在我希望在单击它时,它的背景颜色会变为白色并保持这种状态,直到点击其他内容为止。当点击其他内容时,我希望它具有透明背景 怎么做到这一点? 提前致谢

2 个答案:

答案 0 :(得分:3)

在drawable文件夹中创建两个可绘制图像。单击它时,您可以更改布局的背景。 以下代码更改背景:

 LinearLayout layout=(LinearLayout) findViewById(R.id.linearlayout);
    layout.setBackgroundResource(getResources().getDrawable(R.drawable.drawable_name));

答案 1 :(得分:1)

我认为您也可以使用选择器作为背景。您可以利用“选定”或“聚焦”状态在透明和白色之间切换背景。它看起来像是:

<LinearLayout
...
    android:background="@drawable/bg_list_selector"
...
</LinearLayout>

然后在您的drawable文件夹中bg_list_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@android:color/transparent" />
    <!-- or -->
    <item android:state_selected="true" android:drawable="@android:color/transparent" />
    <item android:drawable="@android:color/white" />
</selector>

请玩StateListDrawable的不同选项,我会说。