带有背景的android波纹按钮

标签 android button android-5.0-lollipop rippledrawable

我使用 XML 在 android 5.0 中成功创建了一个波纹按钮。我的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!-- the flat button to be used in app -->
<!-- define the ripple -->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <!-- the ripple object -->
    <item android:id="@android:id/mask">
        <!-- button shape (w/ radius) -->
        <shape android:shape="rectangle">
            <!-- radius of vertices -->
            <corners
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp"
                android:bottomLeftRadius="7dp"
                android:bottomRightRadius="7dp" />
            <!-- color accent (not working) -->
            <solid android:color="?android:colorAccent" />
        </shape>
    </item>
</ripple>

我的按钮有问题:按钮的背景颜色不会改变。我也试过:

<solid android:color="#0000ff" />

背景仍然继续保持透明(colorAccent 也不起作用)。

如果不通过

,我应该如何将矩形(按钮)的背景设​​置为蓝色
<solid/>

属性(property)?

谢谢

最佳答案

使用@android:id/mask 标识符将图层设置为 mask ,仅用于裁剪边界,不绘制。删除 id 属性应该会给你你正在寻找的东西。此外,如果角的半径都相同,您可以只使用 android:radius 属性。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?android:attr/colorControlHighlight">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="7dp" />
            <solid android:color="?android:attr/colorAccent" />
        </shape>
    </item>
</ripple>

关于带有背景的android波纹按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289911/

相关文章:

iphone - 在新键盘加载时从数字键盘中删除完成按钮

forms - Symfony2 自定义按钮

android - 如何在 Android 上获取 NetworkCapabilities 对象?

android - 如何实现顶部选项卡和侧边菜单

android - 是否可以从其他 View (与我的seekBar不同)启动seekBar OnSeekBarChangeListener?

android - Android 应用程序的日历库

C#:如何更改 MVVM 中的按钮图标?

android - Lollipop RippleDrawable 与 Pre-Lollipop 的选择器

android - 构建安卓内核失败

android - 如何获取相机文件的二级外部目录路径