Search in sources :

Example 91 with Graphics2D

use of java.awt.Graphics2D in project android_frameworks_base by ParanoidAndroid.

the class NinePatch_Delegate method draw.

// ---- Private Helper methods ----
private static void draw(int canvas_instance, final int left, final int top, final int right, final int bottom, int bitmap_instance, byte[] c, int paint_instance_or_null, final int destDensity, final int srcDensity) {
    // get the delegate from the native int.
    final Bitmap_Delegate bitmap_delegate = Bitmap_Delegate.getDelegate(bitmap_instance);
    if (bitmap_delegate == null) {
        return;
    }
    if (c == null) {
        // not a 9-patch?
        BufferedImage image = bitmap_delegate.getImage();
        Canvas_Delegate.native_drawBitmap(canvas_instance, bitmap_instance, new Rect(0, 0, image.getWidth(), image.getHeight()), new Rect(left, top, right, bottom), paint_instance_or_null, destDensity, srcDensity);
        return;
    }
    final NinePatchChunk chunkObject = getChunk(c);
    assert chunkObject != null;
    if (chunkObject == null) {
        return;
    }
    Canvas_Delegate canvas_delegate = Canvas_Delegate.getDelegate(canvas_instance);
    if (canvas_delegate == null) {
        return;
    }
    // this one can be null
    Paint_Delegate paint_delegate = Paint_Delegate.getDelegate(paint_instance_or_null);
    canvas_delegate.getSnapshot().draw(new GcSnapshot.Drawable() {

        @Override
        public void draw(Graphics2D graphics, Paint_Delegate paint) {
            chunkObject.draw(bitmap_delegate.getImage(), graphics, left, top, right - left, bottom - top, destDensity, srcDensity);
        }
    }, paint_delegate, true, /*compositeOnly*/
    false);
}
Also used : GcSnapshot(com.android.layoutlib.bridge.impl.GcSnapshot) NinePatchChunk(com.android.ninepatch.NinePatchChunk) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Example 92 with Graphics2D

use of java.awt.Graphics2D in project android_frameworks_base by ParanoidAndroid.

the class Bitmap_Delegate method nativeErase.

@LayoutlibDelegate
static /*package*/
void nativeErase(int nativeBitmap, int color) {
    // get the delegate from the native int.
    Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
    if (delegate == null) {
        return;
    }
    BufferedImage image = delegate.mImage;
    Graphics2D g = image.createGraphics();
    try {
        g.setColor(new java.awt.Color(color, true));
        g.fillRect(0, 0, image.getWidth(), image.getHeight());
    } finally {
        g.dispose();
    }
}
Also used : BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D) LayoutlibDelegate(com.android.tools.layoutlib.annotations.LayoutlibDelegate)

Example 93 with Graphics2D

use of java.awt.Graphics2D in project android_frameworks_base by ParanoidAndroid.

the class Canvas_Delegate method nativeDrawBitmapMatrix.

@LayoutlibDelegate
static /*package*/
void nativeDrawBitmapMatrix(int nCanvas, int nBitmap, int nMatrix, int nPaint) {
    // get the delegate from the native int.
    Canvas_Delegate canvasDelegate = sManager.getDelegate(nCanvas);
    if (canvasDelegate == null) {
        return;
    }
    // get the delegate from the native int, which can be null
    Paint_Delegate paintDelegate = Paint_Delegate.getDelegate(nPaint);
    // get the delegate from the native int.
    Bitmap_Delegate bitmapDelegate = Bitmap_Delegate.getDelegate(nBitmap);
    if (bitmapDelegate == null) {
        return;
    }
    final BufferedImage image = getImageToDraw(bitmapDelegate, paintDelegate, sBoolOut);
    Matrix_Delegate matrixDelegate = Matrix_Delegate.getDelegate(nMatrix);
    if (matrixDelegate == null) {
        return;
    }
    final AffineTransform mtx = matrixDelegate.getAffineTransform();
    canvasDelegate.getSnapshot().draw(new GcSnapshot.Drawable() {

        @Override
        public void draw(Graphics2D graphics, Paint_Delegate paint) {
            if (paint != null && paint.isFilterBitmap()) {
                graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            }
            //FIXME add support for canvas, screen and bitmap densities.
            graphics.drawImage(image, mtx, null);
        }
    }, paintDelegate, true, /*compositeOnly*/
    false);
}
Also used : AffineTransform(java.awt.geom.AffineTransform) GcSnapshot(com.android.layoutlib.bridge.impl.GcSnapshot) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D) LayoutlibDelegate(com.android.tools.layoutlib.annotations.LayoutlibDelegate)

Example 94 with Graphics2D

use of java.awt.Graphics2D in project android_frameworks_base by ParanoidAndroid.

the class RenderDrawable method getImage.

protected BufferedImage getImage(int w, int h) {
    BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    Graphics2D gc = image.createGraphics();
    gc.setComposite(AlphaComposite.Src);
    gc.setColor(new Color(0x00000000, true));
    gc.fillRect(0, 0, w, h);
    // done
    gc.dispose();
    return image;
}
Also used : Color(java.awt.Color) BufferedImage(java.awt.image.BufferedImage) Graphics2D(java.awt.Graphics2D)

Example 95 with Graphics2D

use of java.awt.Graphics2D in project android_frameworks_base by ParanoidAndroid.

the class GcSnapshot method drawInLayer.

private void drawInLayer(Layer layer, Drawable drawable, Paint_Delegate paint, boolean compositeOnly, boolean forceSrcMode) {
    Graphics2D originalGraphics = layer.getGraphics();
    // get a Graphics2D object configured with the drawing parameters.
    Graphics2D configuredGraphics2D = paint != null ? createCustomGraphics(originalGraphics, paint, compositeOnly, forceSrcMode) : (Graphics2D) originalGraphics.create();
    try {
        drawable.draw(configuredGraphics2D, paint);
        layer.change();
    } finally {
        // dispose Graphics2D object
        configuredGraphics2D.dispose();
    }
}
Also used : Graphics2D(java.awt.Graphics2D)

Aggregations

Graphics2D (java.awt.Graphics2D)777 BufferedImage (java.awt.image.BufferedImage)379 Color (java.awt.Color)180 Font (java.awt.Font)77 BasicStroke (java.awt.BasicStroke)75 Rectangle (java.awt.Rectangle)65 Point (java.awt.Point)63 Rectangle2D (java.awt.geom.Rectangle2D)59 AffineTransform (java.awt.geom.AffineTransform)55 GradientPaint (java.awt.GradientPaint)48 Dimension (java.awt.Dimension)46 Paint (java.awt.Paint)44 FontMetrics (java.awt.FontMetrics)35 IOException (java.io.IOException)33 Graphics (java.awt.Graphics)31 Stroke (java.awt.Stroke)30 Image (java.awt.Image)29 RadialGradientPaint (java.awt.RadialGradientPaint)26 VolatileImage (java.awt.image.VolatileImage)26 File (java.io.File)26