Android 更改所单击按钮的图像背景,并在再次单击时将其恢复为原始状态
我班上有一系列按钮,如下所示:Android 更改所单击按钮的图像背景,并在再次单击时将其恢复为原始状态,android,button,Android,Button,我班上有一系列按钮,如下所示: private static final int[] idArray = {R.id.bt0,R.id.bt1,R.id.bt2,R.id.bt3,R.id.bt4,R.id.bt5,R.id.bt6,R.id.bt7,R.id.bt8,R.id.bt9,R.id.bt10,R.id.bt11,R.id.bt12,R.id.bt13,R.id.bt14,R.id.bt15,R.id.bt16,R.id.bt17,R.id.bt18,R.id.bt19,R.id.b
private static final int[] idArray = {R.id.bt0,R.id.bt1,R.id.bt2,R.id.bt3,R.id.bt4,R.id.bt5,R.id.bt6,R.id.bt7,R.id.bt8,R.id.bt9,R.id.bt10,R.id.bt11,R.id.bt12,R.id.bt13,R.id.bt14,R.id.bt15,R.id.bt16,R.id.bt17,R.id.bt18,R.id.bt19,R.id.bt20,R.id.bt21,R.id.bt22,R.id.bt23,R.id.bt24,R.id.bt25,R.id.bt26,R.id.bt27,R.id.bt28,R.id.bt29};
private Button[] bt = new Button[idArray.length];
并在我的xml中添加了图像背景,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btnew2" android:state_selected="true"></item>
<item android:drawable="@drawable/btnew1" android:state_pressed="true"></item>
<item android:drawable="@drawable/btnew"></item>
</selector>
现在,当我按下一个按钮时,背景图像会改变(btnew1.gif),释放后会恢复正常。
我希望在单击按钮时更改颜色(它将是不同的图像,btnew2.gif),再次单击时应返回原始颜色(btnew.gif)
类似于state\u单击的
,如果存在类似的东西
PS:我在这里检查了其他答案,但大多数答案都只是java类中的颜色更改器,我希望在单击时更改背景图像(到btnew2.gif),并在再次单击时返回到原始图像(btnew.gif)
请建议合适的解决方案。您可以通过制作自己的自定义按钮来实现
Class MyButton extends Button implememts OnClickListener{
Public MyButton(....){
......
this.setOnClickListener(this);
}
@override
Public void onClick(....){
....toogle bg for this button.....
}
}
这不是确切的代码……而是一个抽象的想法。您可以通过制作自己的自定义按钮来实现
Class MyButton extends Button implememts OnClickListener{
Public MyButton(....){
......
this.setOnClickListener(this);
}
@override
Public void onClick(....){
....toogle bg for this button.....
}
}
这不是确切的代码……而是一个抽象的想法。正如Niels Masdorp所提到的,你可以通过切换按钮来实现 这是因为有一个状态标识符称为“可检查的状态”,类似于“可单击的状态”,它与“可检查的状态”界面一起工作<代码>切换按钮实现此界面。您还可以创建自己的小部件来实现此接口,例如扩展
CompoundButton
(摘要)
示例 使用xml中的按钮:
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/toggle_bg"
android:textOn="On"
android:textOff="Off"/>
用xml定义背景:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/red" android:state_checked="true"/>
<item android:drawable="@color/blue"/>
</selector>
另见:
- 可检查的
- 自定义可检查小部件上的一个示例
切换按钮来实现
这是因为有一个状态标识符称为“可检查的状态”
,类似于“可单击的状态”,它与“可检查的状态”界面一起工作<代码>切换按钮实现此界面。您还可以创建自己的小部件来实现此接口,例如扩展CompoundButton
(摘要)
示例 使用xml中的按钮:
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/toggle_bg"
android:textOn="On"
android:textOff="Off"/>
用xml定义背景:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/red" android:state_checked="true"/>
<item android:drawable="@color/blue"/>
</selector>
另见:
- 可检查的
- 自定义可检查小部件上的一个示例
切换按钮是否更有意义?是的,正如Niels所说,使用design modified切换按钮将更有意义。看看这个,实际上我还设置了一个TextView
onClick按钮,它在几秒钟后显示和隐藏。可以使用ToggleButton
?是的,它是:ToggleButton是一个TextView,因此它具有TextView的所有方法(setOnClickListener实际上来自视图)。我发布了一个简单的用法示例。我按照建议使用了切换按钮,但是切换按钮上的文本显示为开和关,而我的文本设置没有显示。切换按钮。setText(null)也不起作用。。如何打开和关闭切换按钮文本您可以通过编程实现,但使用ToggleButton
是否更有意义?是的,正如Niels所说,使用design modifiedToggleButton
更有意义。看看这个,实际上我还设置了一个TextView
onClick按钮,它在几秒钟后显示和隐藏。可以使用ToggleButton
?是的,它是:ToggleButton是一个TextView,因此它具有TextView的所有方法(setOnClickListener实际上来自视图)。我发布了一个简单的用法示例。我按照建议使用了切换按钮,但是切换按钮上的文本显示为开和关,而我的文本设置没有显示。切换按钮。setText(null)也不起作用。。如何打开和关闭切换按钮文本