Java 单击时图像按钮背景颜色更改
不过,Android开发人员在过去第一次使用C#和Java 尝试制作一个简单的、类似Windows 8的GUI。目前,我有一个在activity_main.xml中设置了背景颜色的磁贴(ImageButton)Java 单击时图像按钮背景颜色更改,java,android,xml,Java,Android,Xml,不过,Android开发人员在过去第一次使用C#和Java 尝试制作一个简单的、类似Windows 8的GUI。目前,我有一个在activity_main.xml中设置了背景颜色的磁贴(ImageButton) <ImageButton android:id="@+id/btn1" android:layout_width="120dp" android:layout_height="120dp" android:background="#FF000
<ImageButton
android:id="@+id/btn1"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="#FF0000"
android:onClick="changeColor"/>
编译很好,但每次我点击红色方块,应用程序就会崩溃
我假设Android是如何开发的,有一些基本的东西我没有注意到,这导致了一个非常明显的错误。有没有比图片按钮更好的方法
谢谢
编译很好,但每次我点击红色方块,应用程序就会崩溃
因为在xml中添加android:onClick
时,方法必须是公共的,并接受一个视图作为其唯一参数,我们希望在视图单击时调用该参数:
public void changeColor(View view){
ImageButton btn1 = (ImageButton) findViewById(R.id.btn1);
btn1.setBackgroundColor(Color.GREEN);
}
编译很好,但每次我点击红色方块,应用程序就会崩溃
因为在xml中添加android:onClick
时,方法必须是公共的,并接受一个视图作为其唯一参数,我们希望在视图单击时调用该参数:
public void changeColor(View view){
ImageButton btn1 = (ImageButton) findViewById(R.id.btn1);
btn1.setBackgroundColor(Color.GREEN);
}
最好创建一个选择器,并将其设置为backgraund到按钮
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/button_pressed" />
<item android:color="@color/button_normal" />
</selector>
希望对你有帮助。
P.S.有用的
最好创建一个选择器并将其设置为backgraund到按钮
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/button_pressed" />
<item android:color="@color/button_normal" />
</selector>
希望对你有帮助。
P.S.有用的
有比图像按钮更好的方法吗?
是的,图像按钮主要用于创建“可点击”图像。如果你只是想要一个彩色按钮,一个普通的按钮就可以了
为什么我当前的代码不工作?
应将视图作为参数添加到方法中,如下所示:
public void changeColor(View view){
view.setBackgroundColor(Color.GREEN);
}
有没有比使用图像按钮更好的方法 是的,图像按钮主要用于创建“可点击”图像。如果你只是想要一个彩色按钮,一个普通的按钮就可以了 您可以通过使用 这里可以找到一个很好的例子:(一种颜色也可以作为可绘制的颜色)
为什么我当前的代码不工作?
应将视图作为参数添加到方法中,如下所示:
public void changeColor(View view){
view.setBackgroundColor(Color.GREEN);
}
工作得很好!这究竟指的是什么观点?在我所看到的这个简单的例子中,没有在任何地方创建过一个,也没有在其他任何地方使用过它。@Serephucus:有关更多信息,请参见此处!这究竟指的是什么观点?在这个我能看到的简单示例中,没有在任何地方创建过一个,也没有在其他任何地方使用过。@Serephucus:请参见此处了解更多信息我应该提到的是,我将在稍后向按钮添加图像-具有透明背景-我只是想让颜色更改生效,更重要的是要确保我在安卓系统上的操控性。好吧,不管怎样,可绘制的状态列表背景也适用于ImageButtons,所以如果您喜欢完整的XML解决方案,这将非常有效。实际上,我会的。我在键入时执行此操作。:)我应该提到的是,我将在稍后向按钮添加图像-使用透明背景-我只是想让颜色变化正常工作,更重要的是确保我在Android上有一个手柄。好吧,无论如何,可绘制状态列表背景也适用于ImageButtons,所以,如果您喜欢一个完整的XML解决方案,这将是可行的。我在键入时执行此操作。:)