オーバースクロール エッジとオーバースクロール グローの色を変更する方法、または Android リリース 5.0 ロリポップの白色 (デフォルトの色) を変更する方法は?
22606 次
4 に答える
1
In pre-lollipop the glow effect is actually a Drawable embedded in the OS's resources, you can apply a ColorFilter on that:
public static void changeOverScrollGlowColor(Resources res, int colorID ) {
try {
final int glowDrawableId = res.getIdentifier("overscroll_glow", "drawable", "android");
final Drawable overscrollGlow = res.getDrawable(glowDrawableId);
overscrollGlow.setColorFilter(res.getColor(colorID), android.graphics.PorterDuff.Mode.SRC_ATOP);
final int edgeDrawableId = res.getIdentifier("overscroll_edge", "drawable", "android");
final Drawable overscrollEdge = res.getDrawable(edgeDrawableId);
overscrollEdge.setColorFilter(res.getColor(colorID), android.graphics.PorterDuff.Mode.SRC_ATOP);
} catch (Exception ignored) {
}
}
Calling it once in onCreate is enough.
changeOverScrollGlowColor(getResources(), R.color.colorPrimary);
于 2018-08-21T15:48:46.233 に答える