2013-07-09 38 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" /> 

但他们只有两个值,并通过单击选定的选项卡上获取其他选择本一条未选。但我想要完全像标签。那么有人可以帮我实现它吗?提前致谢。

+0

不要切换按钮使用,采取四个按钮和使用选择的绘制。 –

+0

@ManojPal谢谢,但那些看起来不像上面的角落形状和所有。这也通过选择一个按钮之前选择的按钮应再次获得正常的颜色。 – rick

+0

它的一点点棘手,你可以使用角形图像作为按钮的背景,并添加一个条件,如果选择了一个按钮更改其他按钮背景为正常。它会给人感觉像标签。 –

回答

13

你必须为所有的按钮来创建选择和使用RadioGroup与选择的背景和空键..

关注@Andru答案创建选择..

下面是RadioGroup代码。

<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

你可以这样做,而不是切换按钮使用普通按钮。
如果 “数据” 按钮,点击做这样

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

如果 “H-图” 按钮,点击

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

使用简单的按钮代替的toogle按钮。而像这样设置背景:

我给例如1个按钮:

android:background="@drawable/data_button_select_state" 

,并在你的“绘制”文件夹命名data_button_select_state添加一个XML文件:

<?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> 

现在添加代码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); 

     } 
    }); 

更改其他按钮也是如此。这将可以帮助你......

+0

+1谢谢。将尝试它。 – rick

相关问题