2011-02-10 43 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繪項目仍然可以達到的效果(雖然性能可能採取一擊)。