好吧,所以我知道波纹效果仅可用棒棒糖。但是,尽管如此,设置我的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"
您还可以选择其他一些按钮样式属性,也可能不包含连锁效果。
否则,如果您使用的是实际映像作为按钮,则可以将selectableItemBackground
或selectableItemBackgroundBorderless
属性用作前景:
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>
我找到了一个头脑:)就像魅力一样的工作!
总结:
- 将您的布局放在布局-V21中以支持较新的设备(并在常规绘制/布局文件夹中保留旧设备的副本。
- 创建一个drabable-v21文件夹,然后将上面的文本放在名为ripple.xml的文件中
将其设置为这样的背景:
<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"