有一个带有高程的圆角矩形,它会投射阴影,就像这里的示例一样:http: //developer.android.com/preview/material/views-shadows.html#shadows
这是我的形状:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:radius="6dp" /> </shape>
我想获得其他所有东西都有的漂亮的“涟漪”触摸效果,但是当它被设置为视图的背景时,不会给出触摸反馈。形状保持白色。
所以,我把它变成了layer-list:
layer-list
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@android:color/white" /> <corners android:radius="6dp" /> </shape> </item> <item android:drawable="?android:selectableItemBackground" /> </layer-list>
现在,当我点击它时,我得到了很好的触摸反馈,但是有一个问题。
圆角矩形的轮廓丢失了。它仍然可以很好地绘制白色圆角矩形,但阴影被投射为非圆角矩形(方形边缘),并且波纹一直越过角落:
它在这里看起来并不太可怕,但在设备上它非常丑陋和令人反感。
有没有办法来解决这个问题?第Outline一个链接的部分似乎是我想要的,但我不知道如何实现它。
Outline
试试那个:
ripple.xml
<?xml version="1.0" encoding="utf-8"?> <ripple android:color="@color/COLOR_WHILE_PRESSING" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/background"></item> </ripple>
background.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/BACKGROUND_COLOR" /> <corners android:radius="6dp" /> </shape>
我在那里解释了如何实现新的 FAB 按钮,我也为此使用了大纲。