Android 如何在运行时更改按钮形状样式?
我正在用java开发一个应用程序,android studio,用户可以选择应用程序的样式和颜色 对于大多数组件,只需使用Android 如何在运行时更改按钮形状样式?,android,material-design,android-button,material-components-android,material-components,Android,Material Design,Android Button,Material Components Android,Material Components,我正在用java开发一个应用程序,android studio,用户可以选择应用程序的样式和颜色 对于大多数组件,只需使用.setBackground(colorUser) 问题出在我的按钮上 我的纽扣都是圆形的,我为此创造了一个形状 我的形状在另一个文件中 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:padding="10dp" android:shape="recta
.setBackground(colorUser)代码>
问题出在我的按钮上
我的纽扣都是圆形的,我为此创造了一个形状
我的形状在另一个文件中
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/colorJetway" />
<corners
android:bottomLeftRadius="80dp"
android:bottomRightRadius="80dp"
android:topLeftRadius="80dp"
android:topRightRadius="80dp" />
</shape>
<Button
android:id="@+id/btnAdc"
android:layout_width="84dp"
android:layout_height="84dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="205dp"
android:background="@drawable/btns_border"
android:onClick="btnAdicionar_click"
android:text="+"
android:textColor="#FFFFFF"
android:textSize="40dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtQuantidade" />
这样,如果在运行时我使mybutton.setBackground(colorUser)
mybutton失去了它的风格。。。它将没有圆边
我该怎么做呢?这不完全是你想要的。
但是,使用该组件,圆形按钮非常简单
只需使用app:cornerRadius
定义角半径,并使用app:backgroundTint
更改背景颜色
<com.google.android.material.button.MaterialButton
app:backgroundTint="@color/myselector"
app:cornerRadius="xxdp"
.../>
如果您的颜色有限,您可以使用您想要的颜色创建一些可绘制的
例如:
blackButton.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/black" />
<corners
android:bottomLeftRadius="80dp"
android:bottomRightRadius="80dp"
android:topLeftRadius="80dp"
android:topRightRadius="80dp" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="80dp"
android:bottomRightRadius="80dp"
android:topLeftRadius="80dp"
android:topRightRadius="80dp" />
whiteButton.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/black" />
<corners
android:bottomLeftRadius="80dp"
android:bottomRightRadius="80dp"
android:topLeftRadius="80dp"
android:topRightRadius="80dp" />
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/white" />
<corners
android:bottomLeftRadius="80dp"
android:bottomRightRadius="80dp"
android:topLeftRadius="80dp"
android:topRightRadius="80dp" />
当您想更改按钮的背景时,只需使用button.setBackground(getResources().getDrawable(R.drawable.blackButton))
或button.setBackground(getResources().getDrawable(R.drawable.whiteButton))