In my app I change the overscroll glow effect color like this:
int glowDrawableId = contexto.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = contexto.getResources().getDrawable(glowDrawableId);
assert androidGlow != null;
androidGlow.setColorFilter(getResources().getColor(R.color.MyColor), PorterDuff.Mode.SRC_ATOP);
But when i updated to lollipop this code crashes. I get following error code:
FATAL EXCEPTION: main
Process: com.myproject.myapp, PID: 954
android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.Resources.getValue(Resources.java:1233)
at android.content.res.Resources.getDrawable(Resources.java:756)
at android.content.res.Resources.getDrawable(Resources.java:724)
Seems that overscroll_glow resource is missing in lollipop.
How can I achieve this?
You can specify android:colorEdgeEffect
in your theme to change the overscroll glow color within your entire app. By default, this inherits the primary color value set by android:colorPrimary
.
res/values/themes.xml:
<style name="MyAppTheme" parent="...">
...
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
Alternatively, you can modify this value for a single view using an inline theme overlay.
res/values/themes.xml:
<!-- Note that there is no parent style or additional attributes specified. -->
<style name="MyEdgeOverlayTheme">
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
res/layout/my_layout.xml:
<ListView
...
android:theme="@style/MyEdgeOverlayTheme" />