Как иметь два разных фона для линейного макета - PullRequest
3 голосов
/ 20 февраля 2012

У меня линейный макет, и на нем реализован onClickListener. Теперь я хочу, чтобы при нажатии на него цвет фона изменялся на белый и оставался таким до тех пор, пока не будет нажата какая-либо другая кнопка. Когда что-то нажимается, я хочу, чтобы оно имело прозрачный фон Как этого добиться? Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 20 февраля 2012

Создайте два рисованных изображения в вашей папке для рисования. И когда она нажата, вы можете изменить фон макета. Следующий код меняет фон:

 LinearLayout layout=(LinearLayout) findViewById(R.id.linearlayout);
    layout.setBackgroundResource(getResources().getDrawable(R.drawable.drawable_name));
1 голос
/ 20 февраля 2012

Я думаю, вы также можете просто использовать селектор в качестве фона.Вероятно, вы можете воспользоваться «выбранными» или «сфокусированными» состояниями для переключения фона между прозрачным и белым.Это будет выглядеть примерно так:

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

А затем 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, я бы сказал.1008 *

...