【发布时间】:2014-08-08 15:40:01
【问题描述】:
我的按钮很少。 我想在按下按钮时更改按钮的颜色。 并将其他按钮的颜色更改为正常状态。
问题是在简单改变按钮的背景后, 它的形状也发生了变化。更改颜色后默认android 带阴影的按钮 只是替换为具有更多按钮高度的绘制矩形。 是的。可以将处于正常位置和按下位置的按钮定义为可绘制 XML。 但我想使用默认的 android 按钮而不是花哨的按钮。
我的代码如下:
buttonAny.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonAny.setBackgroundColor(COLOR_BUTTON_SELECTED);
buttonMale.setBackgroundColor(COLOR_BUTTON_GRAY);
buttonFemale.setBackgroundColor(COLOR_BUTTON_GRAY);
}
});
buttonMale.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonAny.setBackgroundColor(COLOR_BUTTON_GRAY);
buttonMale.setBackgroundColor(COLOR_BUTTON_SELECTED);
buttonFemale.setBackgroundColor(COLOR_BUTTON_GRAY);
}
});
XML:
<Button
android:id="@+id/buttonGenderAny"
android:layout_marginLeft="@dimen/dim1"
android:layout_marginRight="@dimen/dim1"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:text='Any'
android:textColor="@color/text1"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Button
android:id="@+id/buttonGenderMale"
android:layout_marginLeft="@dimen/dim1"
android:layout_marginRight="@dimen/dim1"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:text='Male'
android:textColor="@color/text1"
android:textAppearance="?android:attr/textAppearanceSmall" />
启动后我的应用如下所示 pic1 (对不起,我没有发布图片的权限)
我按下一个按钮后是这样的: pic2
很奇怪,按钮的大小发生了变化。
google 有很多类似的问题。 但似乎它们不适合我。 例如this link。 但是没有写如何在drawable中定义普通或按下按钮。
所以。更改(切换)几个按钮颜色的最佳方法是什么。 谢谢!
【问题讨论】:
-
您有权发布 XML 布局。发布吧!
-
好的,我已经发布了...
-
您正在覆盖 onclick 侦听器上的整个按钮设置...我建议您编写一个 xml 文件,其中包含您要显示的按钮的所有属性...然后在 onclick lisener 您将其设置为背景资源...
-
嗯。我应该怎么做?谢谢!
-
对不起,我是新手。而且不知道该怎么办。
标签: android android-layout button