2015-01-05 53 views
0

是新的android。我想水平地有两个可绘制的bg按钮。 Button1(Tour Routes)和button2(Tour Item)在两个按钮之间没有空格,而onClick button1时,我喜欢在button1上显示蓝色drawable(Tour Routes),在button2(Tour Items)和Viceversa上绘制悬停背景。谢谢2可绘制按钮水平无间隔2按钮和onclick改变可绘制按钮颜色

这是我的布局示例。我试图创建可绘制的XML,但它不能正常工作。

<LinearLayout 
    android:id="@+id/button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/header" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp"  
    android:layout_marginTop="6dp" 
    android:orientation="horizontal" > 

<Button 
    android:layout_weight="1" 
    android:id="@+id/button1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:text="T" 
    android:background="@drawable/btn" 
    android:onClick="button1" 

    /> 

<Button 
    android:layout_weight="1" 
    android:id="@+id/button2" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:text="TI" 
    android:background="@drawable/btn" 
    android:onClick="button2" 
    /> 

+0

尝试设置'机器人:clipToPadding =“假”'你父'LinearLayout'。 – RockStar

+0

为了一一提及你的要求,并且要清楚。 – CoDe

+0

首先,加'机器人:weightSum =“2”为'的LinearLayout –

回答

1

请与下面的代码,你可以使用weightsum的布局

<LinearLayout 
    android:id="@+id/button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp"  
    android:layout_marginTop="6dp" 
    android:orientation="horizontal" 
    android:weightSum="2" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/update_bg_button" 
     android:padding="0dip" 
     android:text="@string/save" 
     android:textColor="@drawable/button_font_color" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@drawable/update_bg_button" 
     android:padding="0dip" 
     android:text="@string/clear" 
     android:textColor="@drawable/button_font_color" /> 

</LinearLayout> 

这是update_bg_button.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:state_pressed="true" 
     android:drawable="@color/button_bg_color" /> <!-- pressed --> 
<item android:state_focused="true" 
     android:drawable="@color/button_fg_color" /> <!-- focused --> 
<item android:state_hovered="true" 
     android:drawable="@color/button_fg_color"/> <!-- hovered --> 
<item android:drawable="@color/button_fg_color" /> <!-- default --> 

1

How it looks in my case

我想,你可以通过我的代码为你的要求(添加渐变背景,删除中风等)。

代码布局:

<RadioGroup 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:orientation="horizontal" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp"> 

    <RadioButton 
     android:id="@+id/rbCategories" 
     android:layout_width="0dp" 
     android:layout_height="30dp" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1" 
     android:background="@drawable/rb_left_bg_selector" 
     android:button="@android:color/transparent" 
     android:gravity="center" 
     android:text="@string/tab_categories" 
     android:textColor="@android:color/white"/> 

    <RadioButton 
     android:id="@+id/rbSort" 
     android:layout_width="0dp" 
     android:layout_height="30dp" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1" 
     android:background="@drawable/rb_right_bg_selector" 
     android:button="@android:color/transparent" 
     android:gravity="center" 
     android:text="@string/tab_sort" 
     android:textColor="@android:color/white"/> 
</RadioGroup> 

rb_left_bg_selector.xml是:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/rb_left_selected_bg" android:state_checked="true"/> 
<item android:drawable="@drawable/rb_left_unselected_bg" android:state_checked="false"/></selector> 

rb_left_selected_bg.xml是:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
<solid 
    android:color="@color/blue_dark"/> 
<corners 
    android:bottomLeftRadius="5dp" 
    android:bottomRightRadius="0dp" 
    android:topLeftRadius="5dp" 
    android:topRightRadius="0dp"/> 

rb_left_unselected_bg.xml是:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:bottom="0dp" 
    android:left="0dp" 
    android:right="-1dp" 
    android:top="0dp"> 
    <shape android:shape="rectangle"> 
     <stroke 
      android:width="1dp" 
      android:color="@color/blue_dark"/> 
     <corners 
      android:bottomLeftRadius="5dp" 
      android:bottomRightRadius="0dp" 
      android:topLeftRadius="5dp" 
      android:topRightRadius="0dp"/> 
     <solid android:color="@android:color/transparent"/> 
    </shape> 
</item> 

这similiar右单选按钮。

1

好让我们去一些简单的工作:

假设你已经在你的文件夹绘制2个图像说:灰蓝

第一步:

Note: Considering first button as your default button, So set the blue image as 
     background to your first button and grey to your second button 

如何?

<Button 
    android:layout_weight="1" 
    android:id="@+id/button1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:text="Tour Routes" 
    android:background="@drawable/blue"  // set your blue image over here 
    android:onClick="button1" /> 

<Button 
    android:layout_weight="1" 
    android:id="@+id/button2" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:text="Tour Items" 
    android:background="@drawable/grey"  // set your grey image over here 
    android:onClick="button2" /> 

第二步:在两个按钮

其明显您已经实现点击收听。只是实现这个

button1.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      // TODO Auto-generated method stub 
      button1.setBackgroundResource(R.drawable.blue); 
      button2.setBackgroundResource(R.drawable.grey); 
     } 
    }); 

    button2.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      // TODO Auto-generated method stub 
      button1.setBackgroundResource(R.drawable.grey); 
      button2.setBackgroundResource(R.drawable.blue); 
     } 
    });  

我希望它为你工作,这是你想要的东西:)

+0

请让我知道是你的作品或没有。抱歉,如果我误解了你的问题。 –

+0

谢谢You..Its工作的罚款。 – STS

+0

你是最欢迎的雪利酒Thampan .... –