42

背景が白いAndroidスクロールビューがあります。フェード エッジは、白い半透明のグラデーションです。白ではなく黒に変更したいです。同じプロジェクトに、デフォルトで黒くフェードするエッジを持つ白い背景を持つ ListView がありますが、どこに設定されているか (もしあれば) を見つけることができません。

4

7 に答える 7

81

背景とは異なる色のフェード エッジが必要な場合は、ScrollView の getSolidColor() メソッドをオーバーライドする必要があります。例えば:

@Override
public int getSolidColor() {
    return Color.rgb(0x30, 0x30, 0x30);
}
于 2010-10-05T13:50:30.643 に答える
43

試行錯誤で見つけました。

android:background="@color/yourColor"に設定するだけ<ScrollView>です。シャドウを指定された色に設定します。

于 2010-06-11T08:10:38.147 に答える
7

以下を使用できます。

    final int glowDrawableId = context.getResources().getIdentifier("overscroll_glow",
            "drawable", "android");
    final Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
    androidGlow.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

    int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable",
            "android");
    final Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
    androidEdge.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
于 2014-08-14T15:08:22.223 に答える
6

編集:これは、を求めていた質問には答えませんScrollView。この回答は、AbsListViewおよび子孫(を含むListView)でのみ機能します。


フェード エッジ カラーは、android:cacheColorHintアトリビュートによって制御されます。

例えば:

<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />

背景を白に設定し、cacheColorHintを使用してフェード エッジの色を描画します。この場合は黒になります。

于 2010-04-14T21:29:04.047 に答える
3

フェード エッジの色が変わった原因がわからない場合は、スタイルまたはテーマの適用である可能性があります。アクティビティでマニフェストを確認してくださいandroid:theme="something"。テーマがグループandroid.R.style.Theme.Lightの場合、エッジは白になります。デフォルトandroid.R.style.Themeで、android.R.style.Theme.Black黒いフェード エッジがあります。テーマは他の属性にも影響するため、属性を 1 つのことに投入する前に、その属性を十分に確認してください。

于 2010-04-15T01:30:15.953 に答える