如何设置Android ScrollView淡化边缘的颜色?

时间:2010-04-14 20:41:01

标签: android scrollview fading

我有一个带有白色背景的Android滚动视图。褪色边缘是白色半透明渐变。我想改变它是黑色而不是白色。我在同一个项目中有一个ListView,白色背景默认有黑色渐变边缘,但我找不到设置的位置(如果有的话)。

7 个答案:

答案 0 :(得分:79)

如果你想要一个不同于背景的颜色渐变边缘,你必须覆盖ScrollView的getSolidColor()方法。例如:

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

答案 1 :(得分:39)

通过反复试验找到它。

只需为android:background="@color/yourColor"设置<ScrollView>即可。它会将阴影设置为给定的颜色。

答案 2 :(得分: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);

答案 3 :(得分:6)

编辑:这不回答问题,即ScrollView。此答案仅适用于AbsListView和后代(包括ListView)。


渐变边缘颜色由android:cacheColorHint属性控制。

E.g:

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

将背景设置为白色,cacheColorHint用于绘制渐变边缘颜色 - 在这种情况下,它将为黑色。

答案 4 :(得分:6)

您可以使用:

https://github.com/AndroidAlliance/EdgeEffectOverride

enter image description here

简单干净,工作完美!

答案 5 :(得分:3)

如果你不知道是什么改变了你的渐变边缘的颜色,那可能是风格或主题的应用。检查活动中android:theme="something"的清单。如果主题来自组android.R.style.Theme.Light,则边缘将为白色。默认android.R.style.Themeandroid.R.style.Theme.Black将具有黑色渐变边缘。主题也会影响其他属性,因此在将它们扔进去之前完全检查属性。

答案 6 :(得分:2)

这样做:

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

在values \ styles中放置样式

<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>

对我有用!