Search in sources :

Example 1 with Shader

use of android.graphics.Shader in project UltimateAndroid by cymcsg.

the class HomeDiagram method drawBrokenLine.

/**
	 * 绘制折线
	 * 
	 * @param c
	 */
public void drawBrokenLine(Canvas c) {
    int index = 0;
    float temp_x = 0;
    float temp_y = 0;
    float base = (getHeight() - tb * 3.0f) / (Collections.max(milliliter) - Collections.min(milliliter));
    Shader mShader = new LinearGradient(0, 0, 0, getHeight(), new int[] { Color.argb(100, 0, 255, 255), Color.argb(45, 0, 255, 255), Color.argb(10, 0, 255, 255) }, null, Shader.TileMode.CLAMP);
    framPanint.setShader(mShader);
    for (int i = 0; i < milliliter.size() - 1; i++) {
        float x1 = interval_left_right * i;
        float y1 = getHeight() - tb * 1.5f - (base * milliliter.get(i));
        float x2 = interval_left_right * (i + 1);
        float y2 = getHeight() - tb * 1.5f - (base * milliliter.get(i + 1));
        if ((int) (base * milliliter.get(i + 1)) == 0 && index == 0) {
            index++;
            temp_x = x1;
            temp_y = y1;
        }
        if ((int) (base * milliliter.get(i + 1)) != 0 && index != 0) {
            index = 0;
            x1 = temp_x;
            y1 = temp_y;
        }
        if (index == 0) {
            c.drawLine(x1, y1, x2, y2, paint_brokenLine);
            path.lineTo(x1, y1);
            if (i != 0)
                c.drawBitmap(bitmap_point, x1 - bitmap_point.getWidth() / 2, y1 - bitmap_point.getHeight() / 2, null);
            if (i == milliliter.size() - 2) {
                path.lineTo(x2, y2);
                path.lineTo(x2, getHeight());
                path.lineTo(0, getHeight());
                path.close();
                c.drawPath(path, framPanint);
                c.drawBitmap(bitmap_point, x2 - bitmap_point.getWidth() / 2, y2 - bitmap_point.getHeight() / 2, null);
            }
        }
    }
    paint_dottedline.setColor(orangeLineColor);
    Path path = new Path();
    path.moveTo(0, getHeight() - tb * 6.5f);
    path.lineTo(getWidth(), getHeight() - tb * 6.5f);
    PathEffect effects = new DashPathEffect(new float[] { tb * 0.3f, tb * 0.3f, tb * 0.3f, tb * 0.3f }, tb * 0.1f);
    paint_dottedline.setPathEffect(effects);
    c.drawPath(path, paint_dottedline);
}
Also used : Path(android.graphics.Path) LinearGradient(android.graphics.LinearGradient) DashPathEffect(android.graphics.DashPathEffect) PathEffect(android.graphics.PathEffect) DashPathEffect(android.graphics.DashPathEffect) Shader(android.graphics.Shader) Paint(android.graphics.Paint)

Example 2 with Shader

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

the class BitmapDrawable method draw.

@Override
public void draw(Canvas canvas) {
    final Bitmap bitmap = mBitmapState.mBitmap;
    if (bitmap == null) {
        return;
    }
    final BitmapState state = mBitmapState;
    final Paint paint = state.mPaint;
    if (state.mRebuildShader) {
        final Shader.TileMode tmx = state.mTileModeX;
        final Shader.TileMode tmy = state.mTileModeY;
        if (tmx == null && tmy == null) {
            paint.setShader(null);
        } else {
            paint.setShader(new BitmapShader(bitmap, tmx == null ? Shader.TileMode.CLAMP : tmx, tmy == null ? Shader.TileMode.CLAMP : tmy));
        }
        state.mRebuildShader = false;
    }
    final int restoreAlpha;
    if (state.mBaseAlpha != 1.0f) {
        final Paint p = getPaint();
        restoreAlpha = p.getAlpha();
        p.setAlpha((int) (restoreAlpha * state.mBaseAlpha + 0.5f));
    } else {
        restoreAlpha = -1;
    }
    final boolean clearColorFilter;
    if (mTintFilter != null && paint.getColorFilter() == null) {
        paint.setColorFilter(mTintFilter);
        clearColorFilter = true;
    } else {
        clearColorFilter = false;
    }
    updateDstRectAndInsetsIfDirty();
    final Shader shader = paint.getShader();
    final boolean needMirroring = needMirroring();
    if (shader == null) {
        if (needMirroring) {
            canvas.save();
            // Mirror the bitmap
            canvas.translate(mDstRect.right - mDstRect.left, 0);
            canvas.scale(-1.0f, 1.0f);
        }
        canvas.drawBitmap(bitmap, null, mDstRect, paint);
        if (needMirroring) {
            canvas.restore();
        }
    } else {
        updateShaderMatrix(bitmap, paint, shader, needMirroring);
        canvas.drawRect(mDstRect, paint);
    }
    if (clearColorFilter) {
        paint.setColorFilter(null);
    }
    if (restoreAlpha >= 0) {
        paint.setAlpha(restoreAlpha);
    }
}
Also used : Bitmap(android.graphics.Bitmap) Paint(android.graphics.Paint) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader) BitmapShader(android.graphics.BitmapShader) Paint(android.graphics.Paint)

Example 3 with Shader

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

the class BitmapDrawable method onBoundsChange.

@Override
protected void onBoundsChange(Rect bounds) {
    mDstRectAndInsetsDirty = true;
    final Bitmap bitmap = mBitmapState.mBitmap;
    final Shader shader = mBitmapState.mPaint.getShader();
    if (bitmap != null && shader != null) {
        updateShaderMatrix(bitmap, mBitmapState.mPaint, shader, needMirroring());
    }
}
Also used : Bitmap(android.graphics.Bitmap) Shader(android.graphics.Shader) BitmapShader(android.graphics.BitmapShader)

Example 4 with Shader

use of android.graphics.Shader in project android_frameworks_base by ParanoidAndroid.

the class GLES20Canvas method setupModifiers.

private int setupModifiers(Paint paint, int flags) {
    int modifiers = MODIFIER_NONE;
    if (paint.hasShadow && (flags & MODIFIER_SHADOW) != 0) {
        nSetupShadow(mRenderer, paint.shadowRadius, paint.shadowDx, paint.shadowDy, paint.shadowColor);
        modifiers |= MODIFIER_SHADOW;
    }
    final Shader shader = paint.getShader();
    if (shader != null && (flags & MODIFIER_SHADER) != 0) {
        nSetupShader(mRenderer, shader.native_shader);
        modifiers |= MODIFIER_SHADER;
    }
    final ColorFilter filter = paint.getColorFilter();
    if (filter != null && (flags & MODIFIER_COLOR_FILTER) != 0) {
        nSetupColorFilter(mRenderer, filter.nativeColorFilter);
        modifiers |= MODIFIER_COLOR_FILTER;
    }
    return modifiers;
}
Also used : ColorFilter(android.graphics.ColorFilter) Shader(android.graphics.Shader) Paint(android.graphics.Paint)

Example 5 with Shader

use of android.graphics.Shader in project android_frameworks_base by ParanoidAndroid.

the class GLES20Canvas method setupModifiers.

private int setupModifiers(Paint paint) {
    int modifiers = MODIFIER_NONE;
    if (paint.hasShadow) {
        nSetupShadow(mRenderer, paint.shadowRadius, paint.shadowDx, paint.shadowDy, paint.shadowColor);
        modifiers |= MODIFIER_SHADOW;
    }
    final Shader shader = paint.getShader();
    if (shader != null) {
        nSetupShader(mRenderer, shader.native_shader);
        modifiers |= MODIFIER_SHADER;
    }
    final ColorFilter filter = paint.getColorFilter();
    if (filter != null) {
        nSetupColorFilter(mRenderer, filter.nativeColorFilter);
        modifiers |= MODIFIER_COLOR_FILTER;
    }
    return modifiers;
}
Also used : ColorFilter(android.graphics.ColorFilter) Shader(android.graphics.Shader) Paint(android.graphics.Paint)

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