Search in sources :

Example 61 with Shader

use of android.graphics.Shader in project Rocket by mozilla-tw.

the class HomeScreenBackground method init.

void init() {
    Rect rect = new Rect();
    ((Activity) getContext()).getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.home_pattern);
    paint = new Paint();
    Shader shader1 = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
    int[] colors = { Color.parseColor("#FFFFFFFF"), Color.parseColor("#88FFFFFF"), Color.parseColor("#55FFFFFF"), Color.parseColor("#00FFFFFF") };
    float[] positions = { 0.0f, 0.4f, 0.7f, 1f };
    Shader shader2 = new LinearGradient(0, rect.top, 0, rect.bottom, colors, positions, Shader.TileMode.CLAMP);
    paint.setShader(new ComposeShader(shader2, shader1, PorterDuff.Mode.MULTIPLY));
}
Also used : LinearGradient(android.graphics.LinearGradient) Rect(android.graphics.Rect) Bitmap(android.graphics.Bitmap) ComposeShader(android.graphics.ComposeShader) Activity(android.app.Activity) Paint(android.graphics.Paint) BitmapShader(android.graphics.BitmapShader) ComposeShader(android.graphics.ComposeShader) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader)

Example 62 with Shader

use of android.graphics.Shader in project Osmand by osmandapp.

the class OsmandRenderer method getShader.

public Shader getShader(String resId) {
    if (shaders.get(resId) == null) {
        Bitmap bmp = RenderingIcons.getIcon(context, resId, true);
        if (bmp != null) {
            Shader sh = new BitmapShader(bmp, TileMode.REPEAT, TileMode.REPEAT);
            shaders.put(resId, sh);
        } else {
            shaders.put(resId, null);
        }
    }
    return shaders.get(resId);
}
Also used : Bitmap(android.graphics.Bitmap) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader) BitmapShader(android.graphics.BitmapShader)

Example 63 with Shader

use of android.graphics.Shader in project openhab-android by openhab.

the class ColorPicker method onDraw.

@Override
protected void onDraw(Canvas canvas) {
    Log.d(TAG, "onDraw");
    // All of our positions are using our internal coordinate system. Instead of translating
    // them we let Canvas do the work for us.
    canvas.translate(mTranslationOffset, mTranslationOffset);
    // Draw the color wheel.
    canvas.drawOval(mColorWheelRectangle, mColorWheelPaint);
    updateBrightnessAndSaturation();
    // Draw the brightness slider
    Shader brightnessShader = new LinearGradient(mBrightnessSliderX, mBrightnessSliderStartY, mBrightnessSliderX, mBrightnessSliderEndY, mSaturationColor, Color.BLACK, TileMode.CLAMP);
    mBrightnessSliderPaint.setShader(brightnessShader);
    mBrightnessSliderPaint.setStyle(Paint.Style.STROKE);
    mBrightnessSliderPaint.setStrokeWidth(mColorWheelStrokeWidth);
    canvas.drawLine(mBrightnessSliderX, mBrightnessSliderStartY, mBrightnessSliderX, mBrightnessSliderEndY, mBrightnessSliderPaint);
    // Draw the saturation slider
    Shader saturationShader = new LinearGradient(mSaturationSliderX, mSaturationSliderStartY, mSaturationSliderX, mBrightnessSliderEndY, Color.WHITE, mPointerColor.getColor(), TileMode.CLAMP);
    mSaturationSliderPaint.setShader(saturationShader);
    mSaturationSliderPaint.setStyle(Paint.Style.STROKE);
    mSaturationSliderPaint.setStrokeWidth(mColorWheelStrokeWidth);
    canvas.drawLine(mSaturationSliderX, mSaturationSliderStartY, mSaturationSliderX, mSaturationSliderEndY, mSaturationSliderPaint);
    float[] pointerPosition = calculatePointerPosition(mAngle);
    // Draw the pointer's "halo"
    canvas.drawCircle(pointerPosition[0], pointerPosition[1], mPointerRadius, mPointerHaloPaint);
    // Draw the pointer (the currently selected color) slightly smaller on top.
    canvas.drawCircle(pointerPosition[0], pointerPosition[1], (float) (mPointerRadius / 1.2), mPointerColor);
    // Draw the brightness pointer's "halo"
    canvas.drawCircle(mBrightnessSliderX, mBrightnessY, mPointerRadius, mBrightnessPointerHaloPaint);
    // Draw the brightness pointer's border
    canvas.drawCircle(mBrightnessSliderX, mBrightnessY, mPointerRadius - 2, mBrightnessPointerBorderPaint);
    // Draw the pointer (the currently selected brightness) slightly smaller on top.
    mBrightnessPointerColor.setColor(mBrightnessColor);
    canvas.drawCircle(mBrightnessSliderX, mBrightnessY, (float) (mPointerRadius / 1.2), mBrightnessPointerColor);
    // Draw the saturation pointer's "halo"
    canvas.drawCircle(mSaturationSliderX, mSaturationY, mPointerRadius, mSaturationPointerHaloPaint);
    // Draw the pointer (the currently selected saturation) slightly smaller on top.
    mSaturationPointerColor.setColor(mSaturationColor);
    canvas.drawCircle(mSaturationSliderX, mSaturationY, (float) (mPointerRadius / 1.2), mSaturationPointerColor);
}
Also used : LinearGradient(android.graphics.LinearGradient) Shader(android.graphics.Shader)

Example 64 with Shader

use of android.graphics.Shader in project openhab-android by openhab.

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, 32);
    // initialize X positions of brightness and saturation sliders
    mBrightnessSliderX = mPointerRadius * 2;
    mSaturationSliderX = -mPointerRadius * 2;
    Log.d(TAG, String.format("init %f %f %f %f", mBrightnessSliderStartY, mBrightnessSliderEndY, mSaturationSliderStartY, mSaturationSliderEndY));
    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);
    mBrightnessSliderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    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);
    mBrightnessPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mBrightnessPointerHaloPaint.setColor(Color.BLACK);
    mBrightnessPointerHaloPaint.setStrokeWidth(5);
    mBrightnessPointerHaloPaint.setAlpha(0x60);
    mBrightnessPointerBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mBrightnessPointerBorderPaint.setColor(Color.WHITE);
    mBrightnessPointerBorderPaint.setStrokeWidth(2);
    mBrightnessPointerBorderPaint.setAlpha(0x60);
    mBrightnessPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
    mBrightnessPointerColor.setStrokeWidth(5);
    mSaturationSliderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mSaturationPointerHaloPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    mSaturationPointerHaloPaint.setColor(Color.BLACK);
    mSaturationPointerHaloPaint.setStrokeWidth(5);
    mSaturationPointerHaloPaint.setAlpha(0x60);
    mSaturationPointerColor = new Paint(Paint.ANTI_ALIAS_FLAG);
    mSaturationPointerColor.setStrokeWidth(5);
    mAngle = (float) (-Math.PI / 2);
    mPointerColor.setColor(calculateColor(mAngle));
    // mBrightnessPointerColor.setColor(calculateColor(mAngle));
    mBrightnessPointerColor.setColor(Color.BLACK);
}
Also used : TypedArray(android.content.res.TypedArray) SweepGradient(android.graphics.SweepGradient) Paint(android.graphics.Paint) Shader(android.graphics.Shader)

Example 65 with Shader

use of android.graphics.Shader in project Douya by DreaminginCodeZH.

the class DrawableUtils method makeScrimDrawable.

// From Muzei, Copyright 2014 Google Inc.
public static Drawable makeScrimDrawable(int baseColor, int numStops, int gravity) {
    numStops = Math.max(numStops, 2);
    PaintDrawable paintDrawable = new PaintDrawable();
    paintDrawable.setShape(new RectShape());
    final int[] stopColors = new int[numStops];
    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 < numStops; ++i) {
        float x = i * 1f / (numStops - 1);
        float opacity = MathUtils.constrain((float) Math.pow(x, 3), 0, 1);
        stopColors[i] = Color.argb((int) (alpha * opacity), red, green, blue);
    }
    final float x0, x1, y0, y1;
    switch(gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
        case Gravity.LEFT:
            x0 = 1;
            x1 = 0;
            break;
        case Gravity.RIGHT:
            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;
    }
    paintDrawable.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);
        }
    });
    paintDrawable.setAlpha(Math.round(0.4f * 255));
    return paintDrawable;
}
Also used : LinearGradient(android.graphics.LinearGradient) RectShape(android.graphics.drawable.shapes.RectShape) ShapeDrawable(android.graphics.drawable.ShapeDrawable) PaintDrawable(android.graphics.drawable.PaintDrawable) Shader(android.graphics.Shader)

Aggregations

Shader (android.graphics.Shader)79 Paint (android.graphics.Paint)42 LinearGradient (android.graphics.LinearGradient)39 BitmapShader (android.graphics.BitmapShader)22 Bitmap (android.graphics.Bitmap)18 ShapeDrawable (android.graphics.drawable.ShapeDrawable)15 Matrix (android.graphics.Matrix)14 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