web-dev-qa-db-ja.com

Android ScrollViewフェードエッジの色を設定する方法?

私はAndroid背景が白いスクロールビューです。フェージングエッジは白い半透明のグラデーションです。白ではなく黒に変更したいと思います。デフォルトでは黒のフェージングエッジを持つ白い背景ですが、どこに設定されているかはわかりません。

39
Andrew Shooner

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

単にAndroid:background="@color/yourColor" のために <ScrollView>。影を指定された色に設定します。

40
digitarald

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

@Override
public int getSolidColor() {
    return Color.rgb(0x30, 0x30, 0x30);
}
80
LEHO

次を使用できます。

    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);
7
annelorayne

これを使用できます:

https://github.com/AndroidAlliance/EdgeEffectOverride

enter image description here

シンプルで清潔で完璧に動作します!

6
David

[〜#〜] edit [〜#〜]:これは、ScrollViewを要求していた質問に答えません。この回答は、AbsListViewおよびその子孫(ListViewを含む)でのみ機能します。


フェージングエッジの色は、Android:cacheColorHint属性。

例えば。:

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

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

6
Joe

フェージングエッジの色が何によって変わったのかわからない場合は、おそらくスタイルまたはテーマのアプリケーションでした。アクティビティのAndroid:theme="something"のマニフェストを確認してください。テーマがグループAndroid.R.style.Theme.Lightからのものである場合、エッジは白になります。デフォルトのAndroid.R.style.ThemeおよびAndroid.R.style.Theme.Blackのエッジは黒くなります。テーマは他の属性にも影響を与えるため、1つの目的のために属性をスローする前に、属性を完全にチェックアウトしてください。

3
jqpubliq

これを行う:

  <ScrollView
    Android:theme="@style/scrollUpdate"
    Android:layout_width="match_parent"
    Android:layout_height="0dp"
    Android:layout_weight="1" >

値\スタイルにスタイルを入れます

<style name="scrollUpdate">
    <item name="colorAccent">@color/yourcolor</item>
    <item name="Android:color">@color/yourcolor</item>
    <item name="colorPrimary">@color/yourcolor</item>
    <item name="colorPrimaryDark">@color/yourcolor</item>
</style>

tksで動作します!

2
Douglas