Android渐变浮雕效果

时间:2011-02-10 14:50:47

标签: android

我试图通过以下代码实现:(不能发布不幸的图片)

带圆角的矩形,具有浮雕效果(光线来自左上角)。 中间有一个刻在矩形中的圆圈。想象一下水面,一滴水冲击表面。它会在表面产生凹痕。该圆圈也涂有一些线性渐变。

问题是我只能使用Android的EmbossMaskFilter来提升表面,使其更接近用户的眼睛,但我不知道如何实现相反的方法。 任何人都可以帮助我吗?

非常感谢。

2 个答案:

答案 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来实现效果(尽管性能可能受到影响),其中多个渐变位于彼此之上