Android imagebutton ripple effect



好吧,所以我知道波纹效果仅可用棒棒糖。但是,尽管如此,设置我的ImageButton时,我无法获得像"常规"按钮一样工作的好纹章效果,只需显示一个图像(和透明的BG)...

我添加了AppCompat V7,并将第二个布局放入我的Drawable/Layout-V21文件夹中,其中包含以下按钮:

<ImageButton
    android:id="@+id/forward"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:width="15dp"
    android:scaleType="fitCenter"
    android:height="15dp"
    android:padding="25dp"
    style="@style/Widget.AppCompat.ImageButton"
    android:src="@drawable/forwardplay" />

但是背景是灰色的,连锁反应(灰色)也无法自定义。

所以,如果我只有一个可绘制的纹波可以放入我的可绘制-V21中,这将是很棒的,我可以从ImageButton的背景属性中引用它。事情是我找不到原始的Android Ripple效果(我有三星S6电话,是三星的主题吗?)

是否有人可以分享他们的工作能力。

谢谢!

尝试一下,绝对应该有效:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/YOUR_BUTTON_SOURCE"
    android:background="?attr/selectableItemBackgroundBorderless"
/>

您可以制作可绘制并将背景设置为按钮。

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/grey_15">
    <item android:id="@android:id/mask">
        <shape android:shape="oval">
            <solid android:color="?android:colorPrimary"/>
        </shape>
        <color android:color="@color/white"/>
    </item>
</ripple>

更改规范的颜色。

…是三星的主题吗?

很可能是,但是无论如何,我都使用以下方法来实现这种效果。

这取决于您想要的外观。如果您使用的是类似于在动作栏中看到的图标,则可能需要使用actionButtonStyle

style="?attr/actionButtonStyle"

您还可以选择其他一些按钮样式属性,也可能不包含连锁效果。

否则,如果您使用的是实际映像作为按钮,则可以将selectableItemBackgroundselectableItemBackgroundBorderless属性用作前景:

android:foreground="?attr/selectableItemBackground"

尝试以下答案:

<?xml version="1.0" encoding="utf-8"?>
<ripple android:color="#ffffff"
        xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/mask"
          android:drawable="@android:color/white" />
</ripple>

我找到了一个头脑:)就像魅力一样的工作!

总结:

  1. 将您的布局放在布局-V21中以支持较新的设备(并在常规绘制/布局文件夹中保留旧设备的副本。
  2. 创建一个drabable-v21文件夹,然后将上面的文本放在名为ripple.xml的文件中
  3. 将其设置为这样的背景:

    <ImageButton
        android:id="@+id/forward"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="15dp"
        android:scaleType="fitCenter"
        android:height="15dp"
        android:padding="25dp"
        android:background="@drawable/ripple_bg"
        android:src="@drawable/forwardplay" />
    

尝试使用

android:background="?selectableItemBackground"

尝试使用

android:background="?android:attr/actionBarItemBackground"

相关内容

  • 没有找到相关文章

最新更新