2

繰り返し画像の背景を作成し、その上に白から透明へのグラデーションを追加したいと考えています。したがって、ビューの上部で完全な白から始まり、背景画像が完全に見える下部で完全に透明になるように終了する必要があります。私のコード:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <bitmap 
        android:dither="true" 
        android:src="@drawable/bg" 
        android:tileMode="repeat" >
    </bitmap>
</item>
<item>
    <shape>
        <gradient 
            android:angle="90" 
            android:endColor="#ffffffff" 
            android:startColor="#00000000" />
    </shape>
</item>

問題は、白 ( #ffffff ) から透明へのグラデーションではなく、灰色から透明へのグラデーションが得られないことです。カラー ピッカーを使用して、endColorのコードを取得します。これは #dfdfdf です。

なぜこれがうまくいかないのですか?ありがとう!

スクリーンショット:ここに画像の説明を入力

仕様

この背景をスタイルで使用します。

<resources>
<style name="Theme.NoBackground" parent="android:Theme">
    <item name="android:windowBackground">@drawable/background</item>"
</style>
</resources>
4

2 に答える 2

5

グラデーションは、透明な黒から不透明な白まで続きます。

これいらない?

android:endColor="#ffffffff" 
android:startColor="#00ffffff" />
于 2012-04-22T20:49:00.170 に答える
1

灰色の影があるという同じ問題に遭遇しました(黒以外のグラデーションが使用されている場合)。私がそれを回避した方法は、グラデーションに使用される色のアルファを変更することです。

public static int alpha(int color, int alpha)
{
    return Color.argb(alpha,
            Color.red(color),
            Color.green(color),
            Color.blue(color));
}

アルファが 0 の色を配列に複数回渡すことで、グラデーションのサイズを小さくすることもできます。

colour = alpha(color, 0XFF);
int gradientColor = alpha(color, 0X00); 
GradientDrawable shadow = new GradientDrawable(Orientation.TOP_BOTTOM,
    new int[]{color, gradientColor, gradientColor, gradientColor});
于 2012-09-04T00:33:41.393 に答える