我正在做一个记事应用。我从设计开始,所以我还没有任何代码。我做了一个带有“ +”和渐变背景图像的按钮,但最终失去了波纹效果。我看到有些类似的问题,但我什么都不懂。 如何恢复波纹效果?目前,它仅在图像上起作用,但是我希望在整个按钮(包括背景)上起作用。
add_button_design.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item>
<shape>
<gradient android:startColor="#706fd3" android:endColor="#34ace0" android:angle="45"/>
<corners android:radius="50dp"/>
<stroke android:width="1px" android:color="#227093"/>
</shape>
</item>
<item>
<bitmap android:src="@drawable/add_button_image"/>
</item>
<item>
<ripple android:color="?android:attr/colorControlHighlight">
<item android:drawable="@drawable/add_button_image"/>
</ripple>
</item>
</layer-list>
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" android:background="@color/colorPrimaryDark">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_margin="20dp"
android:background="@drawable/add_button_design"/>
</RelativeLayout>
</FrameLayout>
</RelativeLayout>
我知道这可以看作是重复的问题,但是其他问题与我的计划不符。
答案 0 :(得分:1)
请在您的selector
标记中添加ripple
。这里正在运行GIF。
这是代码。
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item>
<shape>
<gradient android:startColor="#706fd3" android:endColor="#34ace0" android:angle="45"/>
<corners android:radius="50dp"/>
<stroke android:width="1px" android:color="#227093"/>
</shape>
</item>
<item>
<bitmap android:src="@drawable/add_button_image"/>
</item>
<item>
<ripple android:color="?android:attr/colorControlHighlight">
<!--<item android:drawable="@drawable/add_button_image"/>-->
<selector>
<!-- unclick the background-->
<item
android:drawable="@drawable/add_button_image"
android:state_pressed="false" />
<!-- click the background-->
<item
android:drawable="@drawable/add_button_image"
android:state_pressed="true" />
</selector>
</ripple>
</item>
</layer-list>
答案 1 :(得分:0)
使用@Leon基数,我设法修复了它。只需将所有内容放入 Ripple 标签
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item>
<ripple android:color="?android:attr/colorControlHighlight">
<item>
<shape>
<gradient android:startColor="#706fd3" android:endColor="#34ace0" android:angle="45"/>
<corners android:radius="50dp"/>
<stroke android:width="1px" android:color="#227093"/>
</shape>
</item>
<item>
<bitmap android:src="@drawable/add_button_image"/>
</item>
</ripple>
</item>
</layer-list>