我正在尝试创建一个分段按钮控件,我为每个段使用了一个drawable。
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/search_filters_selected" />
</shape>
</item>
<item>
<shape
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/search_filters_unselected" />
<stroke
android:width="1dp"
android:color="@color/search_filters_selected" />
</shape>
</item>
</ripple>
然后,根据它是第一个,最后一个还是中间,我使用setCornerRadii
将角半径设置为左角,右角或无角。
问题是我试图在视图中显示涟漪效果,我无法做到这样,涟漪效果受到圆角的限制,它总是被绘制到原始矩形{{{ 3}}
我尝试将相同的角半径设置为RippleDrawable的蒙版,或者使用
{-1}}在图层列表中而不是<item android:drawable="?android:selectableItemBackground" />
,但结果是相同的。有谁知道怎么做才能使波纹达到新的界限?
答案 0 :(得分:3)
解决方案,如果它对任何人都有用,那就是使用没有蒙版的纹波,但也可以使用设定的圆角半径(任何一个,它将在以后更新)
所以我用了
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="#625505" />
<corners android:radius="1dp"/>
</shape>
</item>
<item>
<shape
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/search_filters_selected" />
<stroke
android:width="1dp"
android:color="@color/search_filters_selected" />
</shape>
</item>
</ripple>
最后让它发挥作用