我有一个带有白色背景的Android滚动视图。褪色边缘是白色半透明渐变。我想改变它是黑色而不是白色。我在同一个项目中有一个ListView,白色背景默认有黑色渐变边缘,但我找不到设置的位置(如果有的话)。
答案 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)
答案 5 :(得分:3)
如果你不知道是什么改变了你的渐变边缘的颜色,那可能是风格或主题的应用。检查活动中android:theme="something"
的清单。如果主题来自组android.R.style.Theme.Light
,则边缘将为白色。默认android.R.style.Theme
和android.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>
对我有用!