2013-07-09 11 views
9

私はこのような見た目をしたい。彼らはtabsのようには見えないので、私は彼らがボタンだと信じています。androidのタブのように見えるボタンを作る

enter image description here

私は描画可能で、セレクタを保つことによってtoggle buttonと同様のタイプをacheiveすることができています。

<ToggleButton 
    android:id="@+id/toggleButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/custom_selector"  
    android:textOn=" Button1 Button2" 
    android:textOff=" Button1 Button2" /> 

しかし、彼らは唯一の2つの値を持っており、選択したタブをクリックすることで、他が選択され、現在のものは非選択されます。しかし、私は正確にタブのようにしたい。だから誰かが私がそれを達成するのを助けてくれる?前もって感謝します。

+0

のためのサンプルコードでは、描画可能に4つのボタンと使用セレクタを取り、トグルボタンを使用しないでくださいです。 –

+0

@ManojPalありがとう、しかし、それらは上記のコーナーの形とすべてのように見えません。ボタンを1つ選択することによって、前に選択したボタンが正常な色に戻ります。 – rick

+0

ちょっとしたことがありますが、ボタンの背景としてコーナーシェイプの画像を使用し、あるボタンが選択されていれば他のボタンの背景を通常どおりに変更するという条件を追加できます。それはタブのような気分を与えます。 –

答えて

13

... ...

フォロー@Andruの答えをあなたを助けるかもしれない。..以下である

ラジオグループコード。ここ

<RadioGroup 
    android:id="@+id/rdogrp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <RadioButton 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn1Selector" 
     android:button="@null" 
     android:checked="true" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn2Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn3Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn4Selector" 
     android:button="@null" 
     android:gravity="center" /> 
</RadioGroup> 

btn1Selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/btn1_selected" android:state_checked="true" /> 
    <item android:drawable="@drawable/btn1_normal" android:state_checked="false"/> 
</selector> 
+0

+1ありがとう、それをチェックします。 – rick

1

通常のボタンを使用する代わりに、このような操作を行うことができます。
"データ" ボタンの場合は、 "H-チャート" ボタンを

H_chart(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image2); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image1); 
} 
1

使用簡単なボタンの代わりに、toogleボタンをクリックした場合は、この

data(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image1); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image2); 
} 

好きですクリック。今すぐにコードを追加

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:drawable="@drawable/data_image_selected_state" 
     android:state_selected="true" /> 
<item android:drawable="@drawable/data_image_selected_state" 
     android:state_pressed="true" /> 
<item android:drawable="@drawable/data_image_without_selected" /> 
</selector> 

android:background="@drawable/data_button_select_state" 

そして、あなたの「描画可能」という名前のフォルダdata_button_select_stateでxmlファイルを追加します。

私は1つのボタンの例を与えている:そして、このような背景を設定このようなjavaファイル:

データボタンをクリックしたとき:

data_button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      data_button.setActivated(true); 
      H_chart_button.setActivated(false); 
          w_chart_button.setActivated(false); 
          hc_chart_button.setActivated(false); 

     } 
    }); 

他のボタンもこのように変更してください。セレクタを作成するためにこの意志はあなたがすべてのボタンのセレクターを作成して、セレクタの背景とヌルボタンでRadioGroupを使用する必要が

+0

+1ありがとうございます。試してみる。 – rick

関連する問題