グラデーションで遊んでみたところ、一方向のグラデーション (上から下、左から右、対角線など) を描くのはかなり簡単であることがわかりましたが、2 方向のグラデーションを描く方法は? 私は次のようなことを意味します:
大きな青い四角形は 2 方向のグラデーションです。右上隅には青があり、左には白に変化し、下には黒に変化しています。これを描く方法は?
答えは: 2 つの異なる LinearGradients を組み合わせる必要があります。次に例を示します。
LinearGradient val = new LinearGradient(0, 0, 0, height, Color.WHITE, Color.BLACK, TileMode.CLAMP);
LinearGradient sat = new LinearGradient(0, 0, width, 0, Color.WHITE, Color.HSVToColor(hsvCopy), TileMode.CLAMP);
ComposeShader merged = new ComposeShader(val, sat, PorterDuff.Mode.MULTIPLY)
;
そしてもちろん重要です:
[view with this background].setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Android 3.0 以降のスマートフォン
gradient
色を作成するときは、次のようなことができます。
<gradient
android:centerColor="@color/my_white"
android:startColor="@color/my_darker_gray"
android:endColor="@color/my_darker_gray"
android:angle="45"/>
start/end/center
の位置に希望の色を指定しgradient
、色の切り替え角度を指定します。