2012-02-20 6 views
3

私は線形レイアウトを持ち、その上にonClickListenerが実装されています。 これをクリックすると、白の背景色が変更され、他の何かがクリックされるまでそのままになります。何か他のものがクリックされたら、私は透明な背景を持ってほしい これを達成するには? ありがとうございます線形レイアウトに2つの異なる背景を持たせる方法

答えて

2

ドロアブルフォルダに2つのドロウアブルイメージを作成します。クリックすると、レイアウトの背景を変更することができます。私はあなたにもちょうど背景としてセレクタを使用できると思い

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

どのように私は状態リストドロアブルでxmlを使ってこれを行うことができます。 Idon'tは別々のイメージを持っています。私はちょうど背景を変更したい – Ankit

1

: 次のコードは、背景を変更します。 「選択された」状態または「集中」状態を利用して、背景を透明と白の間で切り替えることができます。

<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の異なるオプションでプレイを持って、私が言うと思います。

+0

私はこれを試して&それは動作しますが、一時的です。クリックされたときにバックグラウンドが変更されますが、永久には変更されません。 – Ankit

+1

「永続的」を定義してください。私の推測では、あなたのケースでは、「選択された」状態がより興味深いですが、手動でビューの状態を設定する必要があります。例えば、['onListItemClick'](http://developer.android.com/reference/android/app/ListActivity.html#onListItemClick%28android.widget.ListView,%20android.view.View,%20int,%20long %29)、 'v.setSelected(true)'のようなことをします。 –

関連する問題