package activities; import android.graphics.Color; import android.graphics.LinearGradient; import android.graphics.Shader; import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RectShape; public class Gradients_Manager { public static Drawable LoadDrawable(final String profile, final int height) { final int[] gradient_white = { Color.parseColor("#88999999"), Color.parseColor("#88999999"), Color.parseColor("#FFFFFF"), Color.parseColor("#DDDDDD")}; final int[] gradient_black = { Color.parseColor("#88999999"), Color.parseColor("#88999999"), Color.parseColor("#1A1A1A"), Color.parseColor("#222222"), Color.parseColor("#171717"), Color.parseColor("#000000")}; final int[] gradient_ltblack = { Color.parseColor("#88999999"), Color.parseColor("#88999999"), Color.parseColor("#2A2A2A"), Color.parseColor("#333333"), Color.parseColor("#272727"), Color.parseColor("#111111")}; final int[] gradiant_title = { Color.parseColor("#222222"), Color.parseColor("#000000"), Color.parseColor("#FF222222"), Color.parseColor("#00222222")}; ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() { @Override public Shader resize(int width, int height) { final float[] gradient_white_params = {0, ((float) 5 / (float) height), ((float) 5 / (float) height), 1}; final float[] gradient_black_params = {0, ((float) 5 / (float) height), ((float) 5 / (float) height), 0.5f, 0.5f, 1}; final float[] gradient_title_params = {0, 0.85f, 0.85f, 1}; LinearGradient lg = null; switch (profile) { case "white": lg = new LinearGradient(0, 0, 0, height, gradient_white, gradient_white_params, Shader.TileMode.REPEAT); break; case "black": lg = new LinearGradient(0, 0, 0, height, gradient_black, gradient_black_params, Shader.TileMode.REPEAT); break; case "ltblack": lg = new LinearGradient(0, 0, 0, height, gradient_ltblack, gradient_black_params, Shader.TileMode.REPEAT); break; case "title": lg = new LinearGradient(0, 0, 0, height, gradiant_title, gradient_title_params, Shader.TileMode.REPEAT); break; } return lg; } }; PaintDrawable p = new PaintDrawable(); p.setDither(true); p.setShape(new RectShape()); if (profile.equals("white") || profile.equals("black") || profile.equals("ltblack")) p.setCornerRadius(5); p.setShaderFactory(sf); return p; } }