波纹对可绘制图形的影响

用户名

尝试在这里做一些非常简单的事情,并查看了一堆SO资源,但无济于事。我试图在使用drawable类型为背景的按钮上获得涟漪效果shape drawable相关文件:

background_button:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="1px"
        android:color="#80ffffff" />
    <solid android:color="@android:color/transparent" />
</shape>

ripple.xml的内部drawable-v21文件夹:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
    <item android:drawable="@drawable/background_button"/>
</ripple>

Button.xml:

   <Button
                    android:id="@+id/login_button"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:layout_weight="1"
                    android:paddingTop="10dp"
                    android:paddingBottom="10dp"
                    android:background="@drawable/ripple"


 />

怎么了 谢谢!

Tasomaniac

我的建议是不要使用<ripple标签。我有两个原因:准确地执行您想要的操作并不容易,并且.xml每个背景必须有2个不同的文件。我不喜欢有drawable-v21文件夹。

我的解决方案是将您的ButtonwithFrameLayout和useandroid:foreground属性包装起来这样,您可以拥有所需的任何背景,并且可以保持波纹效果。

<FrameLayout
    android:id="@+id/login_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_weight="1"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:foreground="?attr/selectableItemBackground">

    <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/background_button"/>
</FrameLayout>

请注意,我已将所有属性和ID移至FrameLayout您应将设置onClickListenerFrameLayout而不是Button

顺便说一句,?attr/selectableItemBackground太好了。尽可能使用它。对于从Android 4.0到4.3的旧设备,它将用灰色替换蓝色的Holo颜色。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章