我是Android开发和Android的新手。我一直坚持这个问题。
我想做的是
我试图创建一个绿色背景的圆形按钮&红色文字就可以了。
然后我尝试将圆形按钮背景更改为红色,并将文本更改为绿色。
最后,这些都应该通过按钮点击重复。也就是说,当我第一次点击按钮时,带有红色文字的绿色按钮'应该转到带有绿色文字的红色按钮'然后当我第二次点击按钮时,带有绿色文字的红色按钮'应该回到带有红色文字的绿色按钮'等等。
我成功创建了一个圆形按钮&改变了按钮背景,文字就可以了。但是,有一个复杂的问题。
单击按钮时,圆形按钮背景变为方形,整个方形用红色填充。我不想要那个。
我希望以圆形方式填充颜色。
以下是可绘制文件夹
中的XML文件<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#00FF00" />
以下是布局中的XML
<Button
android:layout_width="150dp"
android:layout_height="150dp"
android:text="Activate"
android:textAllCaps="false"
android:textSize="40sp"
android:textColor="#FF0000"
android:id="@+id/buttonActivate"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="@drawable/round_button"
android:onClick="onButtonClick"
style="?android:attr/borderlessButtonStyle" />
以下内容来自MainActivity
public void onButtonClick(View v) {
// Change the background color & text color of the button when clicked
Button buttonActivate = (Button) findViewById(R.id.buttonActivate);
buttonActivate.setBackgroundColor(Color.parseColor("#FF0000"));
buttonActivate.setText("De-Activate");
buttonActivate.setTextColor(Color.parseColor("#00FF00"));
}
请详细解释如何做到这一点,因为我是新的。
答案 0 :(得分:1)
试试这个可绘画:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="oval">
<solid android:color="#00ff00" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#ff0000" />
</shape>
</item>
</selector>
你的onclick ......
public void onButtonClick(View v) {
if (buttonActivate.isSelected()) {
buttonActivate.setTextColor(Color.parseColor("#00ff00"));
buttonActivate.setSelected(false);
} else {
buttonActivate.setTextColor(Color.parseColor("#ff0000"));
buttonActivate.setSelected(true);
}
}
答案 1 :(得分:0)
维护布尔变量,即默认情况下将布尔变量设置为false,并且每当执行click时设置为true并基于布尔变量设置颜色。