2011-02-10 40 views
1

我试图从代码实现如下:(不能发表可惜的图像)Android的浮雕梯度效应

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

的问题是,我可以只使用EmbossMaskFilter从Android的提高表面,使之更贴近用户的眼睛,但我不知道如何实现相反。 任何人都可以帮助我吗?

非常感谢。

回答

1

使用复合绘图或图层绘制。

要创建一个带有圆角的绘制和内部的梯度,使用这样的:

<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> 

创建两个可绘制等,并把它们在彼此的顶部,以创建所需的效果。

+0

感谢您的提示,但它并不能帮助我获得我正在寻找的内圈的枕头浮雕(雕刻)效果。 – Miha 2011-02-10 20:15:37

0

除非你使用一个相当不错的数字层列表项的绘制你可能不会得到你所使用的XML可绘容易找的效果。更好的解决方案是创建一个9补丁图像。看看它是如何工作的draw9patch.com,这是一个从标准图像创建9个补丁图像的工具。

NinePatch文档:here

在情况下,你还真想用堆叠ontop的对方的layer-list多个梯度,以使用XML绘项目仍然可以达到的效果(虽然性能可能采取一击)。