Search in sources :

Example 66 with Shader

use of android.graphics.Shader in project incubator-weex by apache.

the class WXResourceUtils method getShader.

/**
 * Assembly gradients
 * @param image gradient values contains direction、colors
 * @param width component width
 * @param height component height
 * @return gradient shader
 */
public static Shader getShader(String image, float width, float height) {
    List<String> valueList = parseGradientValues(image);
    if (valueList != null && valueList.size() == 3) {
        float[] points = parseGradientDirection(valueList.get(0), width, height);
        Shader shader = new LinearGradient(points[0], points[1], points[2], points[3], getColor(valueList.get(1), Color.WHITE), getColor(valueList.get(2), Color.WHITE), Shader.TileMode.REPEAT);
        return shader;
    }
    return null;
}
Also used : LinearGradient(android.graphics.LinearGradient) Shader(android.graphics.Shader)

Example 67 with Shader

use of android.graphics.Shader in project CameraButton by hluhovskyi.

the class CameraButton method invalidateIcons.

private void invalidateIcons() {
    mIconMatrices = new Matrix[mIconShaders.length];
    mIconPaints = new Paint[mIconShaders.length];
    for (int i = 0; i < mIconShaders.length; i++) {
        Shader shader = mIconShaders[i];
        Matrix matrix = new Matrix();
        shader.setLocalMatrix(matrix);
        mIconMatrices[i] = matrix;
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setShader(shader);
        mIconPaints[i] = paint;
    }
}
Also used : Matrix(android.graphics.Matrix) Paint(android.graphics.Paint) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader) Paint(android.graphics.Paint)

Example 68 with Shader

use of android.graphics.Shader in project TicktockMusic by Lauzy.

the class ScrimUtil method makeCubicGradientScrimDrawable.

/**
 * Creates an approximated cubic gradient using a multi-stop linear gradient. See
 * <a href="https://plus.google.com/+RomanNurik/posts/2QvHVFWrHZf">this post</a> for more
 * details.
 */
public static Drawable makeCubicGradientScrimDrawable(int baseColor, int numStops, int gravity) {
    // Generate a cache key by hashing together the inputs, based on the method described in the Effective Java book
    int cacheKeyHash = baseColor;
    cacheKeyHash = 31 * cacheKeyHash + numStops;
    cacheKeyHash = 31 * cacheKeyHash + gravity;
    Drawable cachedGradient = cubicGradientScrimCache.get(cacheKeyHash);
    if (cachedGradient != null) {
        return cachedGradient;
    }
    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 = MathUtil.constrain(0, 1, (float) Math.pow(x, 3));
        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);
        }
    });
    cubicGradientScrimCache.put(cacheKeyHash, paintDrawable);
    return paintDrawable;
}
Also used : LinearGradient(android.graphics.LinearGradient) RectShape(android.graphics.drawable.shapes.RectShape) PaintDrawable(android.graphics.drawable.PaintDrawable) ShapeDrawable(android.graphics.drawable.ShapeDrawable) Drawable(android.graphics.drawable.Drawable) ShapeDrawable(android.graphics.drawable.ShapeDrawable) PaintDrawable(android.graphics.drawable.PaintDrawable) Shader(android.graphics.Shader)

Example 69 with Shader

use of android.graphics.Shader in project android_packages_apps_Gallery2 by LineageOS.

the class ColorOpacityView method updatePaint.

private void updatePaint() {
    int color2 = Color.HSVToColor(mHSVO);
    int color1 = color2 & 0xFFFFFF;
    Shader sg = new LinearGradient(mBorder, mBorder, mWidth - mBorder, mBorder, color1, color2, Shader.TileMode.CLAMP);
    mBarPaint1.setShader(sg);
}
Also used : LinearGradient(android.graphics.LinearGradient) BitmapShader(android.graphics.BitmapShader) Shader(android.graphics.Shader) Paint(android.graphics.Paint)

Example 70 with Shader

use of android.graphics.Shader in project android_packages_apps_Gallery2 by LineageOS.

the class ColorSaturationView method updatePaint.

private void updatePaint() {
    float[] hsvo = Arrays.copyOf(mHSVO, 4);
    hsvo[3] = 1;
    hsvo[2] = 1;
    hsvo[1] = 1;
    int color2 = Color.HSVToColor(hsvo);
    hsvo[1] = 0;
    int color1 = Color.HSVToColor(hsvo);
    Shader sg = new LinearGradient(mBorder, mBorder, mWidth - mBorder, mBorder, color1, color2, Shader.TileMode.CLAMP);
    mBarPaint1.setShader(sg);
}
Also used : LinearGradient(android.graphics.LinearGradient) BitmapShader(android.graphics.BitmapShader) Shader(android.graphics.Shader) Paint(android.graphics.Paint)

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