我是android的新手。我想要两个可水平抽出的bg纽扣。button1 (旅游路线)和button2(旅游项目)没有两个按钮之间的空间,而onClick button1,我喜欢在button1上显示蓝色可绘制(旅游路线),在button2(旅游项目)上显示可绘制悬停背景,反之亦然。谢谢
这是我的布局示例。我试图创建可绘制的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"
/>
发布于 2015-01-05 16:37:02
检查下面的代码,你可以使用加权和进行布局
<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 -->
发布于 2015-01-05 16:44:30

我想,你可以采用我的代码来满足你的需求(添加渐变背景,删除笔触等)。
布局中的代码:
<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>
它类似于right RadioButton。
发布于 2015-01-05 17:10:32
好的,让我们来做一些简单的工作:
假设您的可绘制文件夹中有两个图像,例如:蓝色和灰色
第一步:
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" />第二步:
很明显,你已经在两个按钮上实现了click listener。只需实现以下内容
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);
}
}); 我希望它能为你工作,这就是你想要的:)
https://stackoverflow.com/questions/27775334
复制相似问题