【发布时间】:2015-02-25 18:36:30
【问题描述】:
我是 Android 开发的新手,我一直被这个问题困扰。
我想做的是
我正在尝试创建一个带有绿色背景和红色文本的圆形按钮。
然后我尝试将圆形按钮背景更改为红色,并将其上的文本更改为绿色。
最后,这两个都应该通过按钮单击重复。即,当我第一次单击按钮时,“带有红色文本的绿色按钮”应该变成“带有绿色文本的红色按钮”,然后当我第二次单击按钮时,“带有绿色文本的红色按钮”应该变回“绿色”带有红色文本的按钮'等等。
我成功创建了一个圆形按钮并更改了按钮背景,上面的文字。但是,有一个并发症。
单击按钮时,圆形按钮背景变为正方形,整个正方形被红色填充。我不想那样。
我希望颜色以圆形方式填充。
以下是drawable文件夹中的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"));
}
由于我是新手,请详细说明如何执行此操作。
【问题讨论】:
-
当你设置背景颜色时,意味着你覆盖了背景。您可以创建另一个具有红色背景的drawable,而不是 setBackgroundColor 调用 setDrawable 或类似这样。
标签: android button colors background background-color