Search in sources :

Example 36 with Shader

use of android.graphics.Shader in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class FloatingActionButton method createInnerStrokesDrawable.

private Drawable createInnerStrokesDrawable(final int color, float strokeWidth) {
    if (!mStrokeVisible) {
        return new ColorDrawable(Color.TRANSPARENT);
    }
    ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
    final int bottomStrokeColor = darkenColor(color);
    final int bottomStrokeColorHalfTransparent = halfTransparent(bottomStrokeColor);
    final int topStrokeColor = lightenColor(color);
    final int topStrokeColorHalfTransparent = halfTransparent(topStrokeColor);
    final Paint paint = shapeDrawable.getPaint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(strokeWidth);
    paint.setStyle(Style.STROKE);
    shapeDrawable.setShaderFactory(new ShaderFactory() {

        @Override
        public Shader resize(int width, int height) {
            return new LinearGradient(width / 2, 0, width / 2, height, new int[] { topStrokeColor, topStrokeColorHalfTransparent, color, bottomStrokeColorHalfTransparent, bottomStrokeColor }, new float[] { 0f, 0.2f, 0.5f, 0.8f, 1f }, TileMode.CLAMP);
        }
    });
    return shapeDrawable;
}
Also used : LinearGradient(android.graphics.LinearGradient) ShaderFactory(android.graphics.drawable.ShapeDrawable.ShaderFactory) ColorDrawable(android.graphics.drawable.ColorDrawable) ShapeDrawable(android.graphics.drawable.ShapeDrawable) Paint(android.graphics.Paint) OvalShape(android.graphics.drawable.shapes.OvalShape) Shader(android.graphics.Shader) SuppressLint(android.annotation.SuppressLint) Paint(android.graphics.Paint)

Example 37 with Shader

use of android.graphics.Shader in project apps-android-wikipedia by wikimedia.

the class GradientUtil method setPowerGradient.

/**
 * Create a power gradient by using a compound gradient composed of a series of linear
 * gradients with intermediate color values.
 * adapted from: https://github.com/romannurik/muzei/blob/master/main/src/main/java/com/google/android/apps/muzei/util/ScrimUtil.java
 * @param baseColor The color from which the gradient starts (the ending color is transparent).
 * @param gravity Where the gradient should start from. Note: when making horizontal gradients,
 *                remember to use START/END, instead of LEFT/RIGHT.
 */
private static void setPowerGradient(@NonNull PaintDrawable drawable, @ColorInt int baseColor, int gravity) {
    final int[] stopColors = new int[GRADIENT_NUM_STOPS];
    int red = Color.red(baseColor);
    int green = Color.green(baseColor);
    int blue = Color.blue(baseColor);
    int alpha = Color.alpha(baseColor);
    for (int i = 0; i < GRADIENT_NUM_STOPS; i++) {
        float x = i * 1f / (GRADIENT_NUM_STOPS - 1);
        float opacity = MathUtil.constrain((float) Math.pow(x, GRADIENT_POWER), 0.0f, 1.0f);
        stopColors[i] = Color.argb((int) (alpha * opacity), red, green, blue);
    }
    final float x0, x1, y0, y1;
    switch(gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
        case Gravity.START:
            x0 = 1;
            x1 = 0;
            break;
        case Gravity.END:
            x0 = 0;
            x1 = 1;
            break;
        default:
            x0 = 0;
            x1 = 0;
            break;
    }
    switch(gravity & Gravity.VERTICAL_GRAVITY_MASK) {
        case Gravity.TOP:
            y0 = 1;
            y1 = 0;
            break;
        case Gravity.BOTTOM:
            y0 = 0;
            y1 = 1;
            break;
        default:
            y0 = 0;
            y1 = 0;
            break;
    }
    drawable.setShaderFactory(new ShapeDrawable.ShaderFactory() {

        @Override
        public Shader resize(int width, int height) {
            return new LinearGradient(width * x0, height * y0, width * x1, height * y1, stopColors, null, Shader.TileMode.CLAMP);
        }
    });
}
Also used : LinearGradient(android.graphics.LinearGradient) ShapeDrawable(android.graphics.drawable.ShapeDrawable) Shader(android.graphics.Shader)

Example 38 with Shader

use of android.graphics.Shader in project apps-android-wikipedia by wikimedia.

the class SnippetImage method drawGradient.

private static void drawGradient(@NonNull Canvas canvas) {
    // draw a dark gradient over the image, so that the white text
    // will stand out better against it.
    final int gradientStartColor = 0x60000000;
    final int gradientStopColor = 0xA0000000;
    Shader shader = new LinearGradient(0, 0, 0, canvas.getHeight(), gradientStartColor, gradientStopColor, Shader.TileMode.CLAMP);
    Paint paint = new Paint();
    paint.setShader(shader);
    canvas.drawRect(new Rect(0, 0, canvas.getWidth(), canvas.getHeight()), paint);
}
Also used : LinearGradient(android.graphics.LinearGradient) Rect(android.graphics.Rect) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint) Shader(android.graphics.Shader) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint)

Example 39 with Shader

use of android.graphics.Shader in project Qblog_Android by qiaoyhh.

the class CircleImageTransformation method transform.

@Override
public Bitmap transform(Bitmap source) {
    int minEdge = Math.min(source.getWidth(), source.getHeight());
    int dx = (source.getWidth() - minEdge) / 2;
    int dy = (source.getHeight() - minEdge) / 2;
    // Init shader
    Shader shader = new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
    Matrix matrix = new Matrix();
    // Move the target area to center of the source bitmap
    matrix.setTranslate(-dx, -dy);
    shader.setLocalMatrix(matrix);
    // Init paint
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setShader(shader);
    // Create and draw circle bitmap
    Bitmap output = Bitmap.createBitmap(minEdge, minEdge, source.getConfig());
    Canvas canvas = new Canvas(output);
    canvas.drawOval(new RectF(0, 0, minEdge, minEdge), paint);
    // Recycle the source bitmap, because we already generate a new one
    source.recycle();
    return output;
}
Also used : RectF(android.graphics.RectF) Bitmap(android.graphics.Bitmap) Matrix(android.graphics.Matrix) Canvas(android.graphics.Canvas) Paint(android.graphics.Paint) BitmapShader(android.graphics.BitmapShader) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader) Paint(android.graphics.Paint)

Example 40 with Shader

use of android.graphics.Shader in project k-9 by k9mail.

the class ColorPicker method init.

private void init(AttributeSet attrs, int defStyle) {
    final TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ColorPicker, defStyle, 0);
    mColorWheelStrokeWidth = a.getInteger(R.styleable.ColorPicker_wheel_size, 16);
    mPointerRadius = a.getInteger(R.styleable.ColorPicker_pointer_size, 48);
    a.recycle();
    Shader s = new SweepGradient(0, 0, COLORS, null);
    mColorWheelPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mColorWheelPaint.setShader(s);
    mColorWheelPaint.setStyle(Paint.Style.STROKE);
    mColorWheelPaint.setStrokeWidth(mColorWheelStrokeWidth);
    mPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mPointerHaloPaint.setColor(Color.BLACK);
    mPointerHaloPaint.setStrokeWidth(5);
    mPointerHaloPaint.setAlpha(0x60);
    mPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
    mPointerColor.setStrokeWidth(5);
    mAngle = (float) (-Math.PI / 2);
    mPointerColor.setColor(calculateColor(mAngle));
}
Also used : TypedArray(android.content.res.TypedArray) SweepGradient(android.graphics.SweepGradient) Paint(android.graphics.Paint) Shader(android.graphics.Shader)

Aggregations

Shader (android.graphics.Shader)77 Paint (android.graphics.Paint)41 LinearGradient (android.graphics.LinearGradient)38 BitmapShader (android.graphics.BitmapShader)21 Bitmap (android.graphics.Bitmap)17 ShapeDrawable (android.graphics.drawable.ShapeDrawable)15 Matrix (android.graphics.Matrix)13 RectShape (android.graphics.drawable.shapes.RectShape)9 PaintDrawable (android.graphics.drawable.PaintDrawable)8 Point (android.graphics.Point)7 SuppressLint (android.annotation.SuppressLint)6 ColorDrawable (android.graphics.drawable.ColorDrawable)6 Drawable (android.graphics.drawable.Drawable)5 OvalShape (android.graphics.drawable.shapes.OvalShape)5 CallSuper (android.annotation.CallSuper)4 Rect (android.graphics.Rect)4 RectF (android.graphics.RectF)4 ShaderFactory (android.graphics.drawable.ShapeDrawable.ShaderFactory)4 Test (org.junit.Test)4 Canvas (android.graphics.Canvas)3