下の画像のように、上半分がグラデーション、下半分が無地のグラデーション背景を作りたいのですが。
しかし、centerColor
が下と上を覆うように広がってしまうので、できません。
。
1枚目の画像のような背景を作るにはどうしたらいいですか?広がらないように小さなcenterColor
を作るにはどうしたらいいですか?
上記の背景ボタンのXMLのコードです。
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:startColor="#6586F0"
android:centerColor="#D6D6D6"
android:endColor="#4B6CD6"
android:angle="90"/>
<corners
android:radius="0dp"/>
</shape>
この「ハーフグラデーション」の外観は、xmlのLayer-Listを使って、上下の「バンド」を1つのファイルにまとめることで実現できます。各バンドは、xmlの形状です。
詳細なチュートリアルについては、SOの以前の回答を参照してください。[マルチグラデーションシェイプ][2]を参照してください。
[2]: https://stackoverflow.com/questions/4381033/multi-gradient-shapes
まず、以下のようにgradient.xmlを作成する必要があります。
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
次に、上記のグラデーションをレイアウトの背景に記述する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient"
>
</LinearLayout>
画像や9Patch画像を作って、それを使ってみてはいかがでしょうか?
下のリンクに、その方法についての素敵なガイドがあります。
http://android.amberfog.com/?p=247
どうしてもシェイプを使いたいという方は、以下のサイトをお試しください(左下でAndroidを選択)。 http://angrytools.com/gradient/
私はこのリンク先で、あなたが持っているものと似たようなグラデーション(正確ではありません)を作りました。 http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269