我试图通过以下代码实现:(不能发布不幸的图片)
带圆角的矩形,具有浮雕效果(光线来自左上角)。 中间有一个刻在矩形中的圆圈。想象一下水面,一滴水冲击表面。它会在表面产生凹痕。该圆圈也涂有一些线性渐变。
问题是我只能使用Android的EmbossMaskFilter来提升表面,使其更接近用户的眼睛,但我不知道如何实现相反的方法。 任何人都可以帮助我吗?
非常感谢。
答案 0 :(得分:1)
在图层中使用复合drawable或drawable。
要创建一个带圆角和渐变的drawable,请使用以下内容:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="10dp"/>
<gradient android:startColor="@color/gradientstart" android:endColor="@color/gradientend" android:angle="315"/>
</shape>
创建两个这样的drawable并将它们放在一起以创建所需的效果。
答案 1 :(得分:0)
除非你使用相当多的图层列表项作为drawable,否则你可能无法轻松获得XML drawables所需的效果。更好的解决方案是创建9补丁图像。在draw9patch.com查看它是如何工作的,这是一个从标准图像创建9个补丁图像的工具。
NinePatch文档:here。
如果您仍然真的想要使用xml drawable,您仍然可以使用layer-list来实现效果(尽管性能可能受到影响),其中多个渐变位于彼此之上