首页 > 解决方案 > 上面有形状的android特殊按钮主题

问题描述

我正在尝试创建一个看起来像这样的按钮:

在此处输入图像描述

所以我创造了这种风格:

<style name="button_main" parent="@android:style/Widget.Button">
    <item name="android:gravity">center_vertical|center_horizontal</item>
    <item name="android:textColor">#FFFFFFFF</item>
    <item name="android:shadowColor">#FF000000</item>
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowRadius">0.2</item>
    <item name="android:textSize">16dip</item>
    <item name="android:textStyle">bold</item>
    <item name="android:background">@drawable/button_main</item>
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
</style>

并将其应用于按钮:

<Button
    android:id="@+id/btnConnect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CONNECT"
    style="@style/button_main"
    android:drawableTop="@drawable/ic_connect"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/text_home" />

但这是我的结果:

在此处输入图像描述

知道如何将绿色背景添加到文本中吗?以及如何将白色添加到图标?

标签: androidbuttonstyles

解决方案


如何为图标添加白色色调?

app:drawableTint="@color/white"

编辑:

在下面创建单独TextView的内部根布局以button

试试这个:

<androidx.constraintlayout.widget.ConstraintLayout
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@color/green">

    <Button
        android:id="@+id/btnConnect"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/button_main"
        android:drawableTop="@drawable/ic_wifi_24"
        app:drawableTint="@color/white"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_margin="@dimen/margin_12dp"
        app:layout_constraintTop_toBottomOf="@+id/text_home" />

        <TextView
            android:id="@+id/tvConnect"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/white"
            app:layout_constraintTop_toBottomOf="@id/btnConnect"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            android:text="Connect"/>
    </androidx.constraintlayout.widget.ConstraintLayout>

上面的代码将给出预期的结果,可能是您必须调整 padding n margin lil bit 。


推荐阅读