web-dev-qa-db-ja.com

Android background?

私はXMLでマルチカラーの背景を作ろうとしましたが、開始、中央、終了、指定された角度の3つのオプションしか利用できませんでした。以下のような背景を作成することはできません。 multi color at different angle

multi color at different angle

Android ??

11

developers.Android によると...これは彼らが使用したコードです

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >

<gradient
    Android:angle="45"
    Android:endColor="#87CEEB"
    Android:centerColor="#768087"
    Android:startColor="#000"
    Android:type="linear" />

</shape>

また、 ここにあります チュートリアル

お役に立てれば

25
Hamza

Xmlファイルに+3のグラデーションカラーを実装することはできません。ただし、GradientDrawableクラスを使用して、Java/kotlinコードに組み込むことができます。これはJavaバージョンです。色の配列を色IDに置き換えます。

GradientDrawable gradientDrawable = new GradientDrawable(
                Orientation.TOP_BOTTOM,
                new int[]{ContextCompat.getColor(this, R.color.color1),
                        ContextCompat.getColor(this, R.color.color2),
                        ContextCompat.getColor(this, R.color.color3),
                        ContextCompat.getColor(this, R.color.color4)});

        findViewById(R.id.background).setBackground(gradientDrawable);
21
Pelanes

Drawableで新しいxmlファイルを作成し、次のコードをコピーします。

<?xml version="1.0" encoding="utf-8"?>
<shape    xmlns:Android="http://schemas.Android.com/apk/res/Android">

<gradient Android:startColor="#9A0C0C"
          Android:centerColor="#CE9908"
          Android:endColor="#3091FF"
          Android:angle="270"/>
</shape>

enter image description here

3
Maryam Azhdari

これは、Adobe illustratorでこの背景グラデーションを作成したベクターグラフィックを使用して達成できます。その後、そのベクター資産をxmlとしてAndroid studioにインポートします。

enter image description here

ここにこのvector/xml drawableのコードがあります

<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:aapt="http://schemas.Android.com/aapt"
Android:width="987.3dp"
Android:height="870.3dp"
Android:viewportWidth="987.3"
Android:viewportHeight="870.3">
<path Android:pathData="M0,870l0,-870l987,0l0,870z">
    <aapt:attr name="Android:fillColor">
        <gradient
            Android:endX="493.5"
            Android:endY="870"
            Android:startX="493.5"
            Android:startY="2.6645353E-14"
            Android:type="linear">
            <item
                Android:color="#FF0000FF"
                Android:offset="0" />
            <item
                Android:color="#FF6AFCFF"
                Android:offset="0.1974" />
            <item
                Android:color="#FFE900D0"
                Android:offset="0.3786" />
            <item
                Android:color="#FFFF7D15"
                Android:offset="0.5906" />
            <item
                Android:color="#FFE6FF55"
                Android:offset="0.7513" />
            <item
                Android:color="#FFED1E79"
                Android:offset="1" />
        </gradient>
    </aapt:attr>
</path>
2
Harvinder Singh

放射状グラデーションのレイヤーリストを使用してそれを行うことができ、その後、異なるアイテムに異なる不透明度を設定します

0
Pete