Instantly share code, notes, and snippets.

Embed
What would you like to do?
static void brandGlowEffect(Context context, int brandColor) {
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
}
static void brandGlowEffect(Context context, int brandColor) {
//glow
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
//edge
int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android");
Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
}
public EdgeEffect(Context context) {
final Resources res = context.getResources();
mEdge = res.getDrawable(R.drawable.overscroll_edge);
mGlow = res.getDrawable(R.drawable.overscroll_glow);
public boolean draw(Canvas canvas) {
...
int glowBottom = (int) Math.min(
mGlowHeight * mGlowScaleY * mGlowHeight / mGlowWidth * 0.6f,
mGlowHeight * MAX_GLOW_HEIGHT);
if (mWidth < mMinWidth) {
// Center the glow and clip it.
int glowLeft = (mWidth - mMinWidth)/2;
mGlow.setBounds(glowLeft, 0, mWidth - glowLeft, glowBottom);
} else {
// Stretch the glow to fit.
mGlow.setBounds(0, 0, mWidth, glowBottom);
}
mGlow.draw(canvas);
...
@mrh-is

This comment has been minimized.

mrh-is commented Dec 9, 2013

This works perfectly (if hackily). As a suggestion, I used PorterDuff.Mode.SRC_IN. That replaces the color completely instead of mutiplying the two colors together, but retains the glow shape.

@serso

This comment has been minimized.

serso commented Feb 14, 2014

Thumbs up for PorterDuff.Mode.SRC_IN

@menny

This comment has been minimized.

Owner

menny commented Dec 15, 2014

Updated the gist. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment