2011-02-10 8 views
1

は、私は、次のコードから達成しようとしています:(光が左上隅から来ている)エンボス効果で、角を丸くしてAndroidの勾配エンボス効果

矩形を(生憎の画像を投稿することはできません)。 中央には、長方形に刻まれた円があります。水面を想像し、水滴が表面に当たる。表面に凹みができます。そのサークルには、線形グラデーションが塗られています。

問題は、AndroidのEmbossMaskFilterを使用して表面を上げてユーザーの目に近づけることしかできないことですが、その逆を実装する方法はわかりません。 誰もが私を助けることができますか?

ありがとうございました。

答えて

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> 

2つのなどのDrawableを作成し、必要な効果を作成するために、互いの上にそれらを置く:このようなものを使用し、内部に角丸やグラデーションで描画可能を作成するには

+0

ヒントはありがとうございますが、私が探している内側の円の枕エンボス(彫刻)効果を得るのに役立ちません。 – Miha

0

画層リスト項目をかなり効率よく描画可能なものにしていない限り、おそらくあなたが探している効果はXML描画可能なものではないでしょう。より良い解決策は、9パッチ画像を作成することです。標準イメージから9つのパッチイメージを作成するツールであるdraw9patch.comでの動作を確認してください。

NinePatchのドキュメント:here

場合は、あなたはまだ本当にお互いの岩下積み重ねlayer-listで複数の勾配を使用して(パフォーマンスが打撃を受けるかもしれませんが)あなたはまだ効果を実現できるXMLドローアブルを使用します。