将按钮半径设置为主题

时间:2018-07-03 12:48:44

标签: java android button themes radius

<Button android:id="@+id/gp_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="32dp"
    android:onClick="gp"
    android:text="@string/go_gplay"
    android:textAllCaps="false"
    android:theme="@style/ButonTheme"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.502"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView2" />    

<style name="ButonTheme" parent="ButonTheme">
    <item name="android:backgroundTint">#ffffff</item>
    <item name="android:textColor">#121212</item>
    <item name="android:topLeftRadius">20dp</item>
    <item name="android:bottomLeftRadius">20dp</item>
    <item name="android:topRightRadius">20dp</item>
    <item name="android:bottomRightRadius">20dp</item>
</style>

如何将按钮边框半径作为主题进行编辑,如您所见,我将半径设置为20dp并在预览中显示为确定,但是在编译并在手机中运行时,默认情况下显示半径。(我知道其他“技巧”制作形状,然后将其设置为按钮背景,但是这样,我将松开“材质”默认动画)

2 个答案:

答案 0 :(得分:0)

制作一个可绘制对象..,然后将可绘制对象文件名作为背景应用于布局中的<Button>

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ffffffff"/>    

    <stroke android:width="3dp"
            android:color="#ff000000" />

    <padding android:left="1dp"
             android:top="1dp"
             android:right="1dp"
             android:bottom="1dp" /> 

    <corners android:bottomRightRadius="7dp"
             android:bottomLeftRadius="7dp"
             android:topLeftRadius="7dp"
             android:topRightRadius="7dp" /> 
</shape>

答案 1 :(得分:0)

尝试设置整个角的半径,<item name android:radius="20dp"/> 或者,您也可以将按钮置于卡片视图中并使其弯曲。 但是典型的方式是使用形状。