4

我正在尝试创建一个带轮廓的 Material Components 按钮,但是除了笔触之外,我还需要它具有半透明的背景。

到目前为止,这是我的 XML 代码:

<android.support.design.button.MaterialButton
    android:id="@+id/foo"
    style="@style/Widget.MaterialComponents.Button.TextButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    app:backgroundTint="#CFFF"
    app:strokeColor="@color/colorAccent"
    app:strokeWidth="2dp" />

这就是它的样子:

具有 2dp 笔划的按钮

问题是按钮周围的笔划之外的一些背景是可见的(笔划宽度越大,出现的白色像素越多)。

例如,这是一个5dp中风:

5dp 行程的按钮

有没有办法解决这个问题,设置背景颜色的更好方法,或任何东西?

4

3 回答 3

3

只需使用以下Widget.MaterialComponents.Button.OutlinedButton样式:

    <com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.OutlinedButton"
        app:strokeWidth="2dp"
        app:strokeColor="@color/colorAccent"
        app:backgroundTint="#3ad64f"
        .../>

在此处输入图像描述

于 2019-09-25T19:34:14.153 回答
1

如果您创建了一种样式,则必须删除 app:在我的示例中,此样式称为SecondButton

 <style name="SecondButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
    <item name="android:theme">@style/SecondButtonTheme</item>
    <item name="backgroundTint">@color/second_button_back</item>
    <item name="strokeColor">@color/second_button_text</item>
    <item name="strokeWidth">1dp</item>
    <item name="android:textColor">@color/second_button_text</item>
</style>

在你身上使用它

<com.google.android.material.button.MaterialButton
        style="@style/SecondButton"
    .../>
于 2020-01-14T14:58:15.803 回答
0

您可以尝试基于此在 xlm 中直接在可绘制对象中创建按钮:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="backgroundcolor"/>
        <stroke android:color="strokecolor" android:width="2dp" />
        <!--corners allow us to make the rounded corners button-->
        <corners android:radius="15dp" />
    </shape>
</item>
</selector>

在这里成立:https ://android--code.blogspot.fr/2015/01/android-rounded-corners-button.html

并在您的布局中像这样使用它:

 android:background="@drawable/nameofbutton.xml"
于 2018-05-28T19:06:24.927 回答