FileDocCategorySizeDatePackage
Paint.javaAPI DocAndroid 1.5 API47732Wed May 06 22:42:00 BST 2009android.graphics

Paint

public class Paint extends Object
The Paint class holds the style and color information about how to draw geometries, text and bitmaps.

Fields Summary
int
mNativePaint
private ColorFilter
mColorFilter
private MaskFilter
mMaskFilter
private PathEffect
mPathEffect
private Rasterizer
mRasterizer
private Shader
mShader
private Typeface
mTypeface
private Xfermode
mXfermode
private static final Style[]
sStyleArray
private static final Cap[]
sCapArray
private static final Join[]
sJoinArray
private static final Align[]
sAlignArray
public static final int
ANTI_ALIAS_FLAG
bit mask for the flag enabling antialiasing
public static final int
FILTER_BITMAP_FLAG
bit mask for the flag enabling bitmap filtering
public static final int
DITHER_FLAG
bit mask for the flag enabling dithering
public static final int
UNDERLINE_TEXT_FLAG
bit mask for the flag enabling underline text
public static final int
STRIKE_THRU_TEXT_FLAG
bit mask for the flag enabling strike-thru text
public static final int
FAKE_BOLD_TEXT_FLAG
bit mask for the flag enabling fake-bold text
public static final int
LINEAR_TEXT_FLAG
bit mask for the flag enabling linear-text (no caching)
public static final int
SUBPIXEL_TEXT_FLAG
bit mask for the flag enabling subpixel-text
public static final int
DEV_KERN_TEXT_FLAG
bit mask for the flag enabling device kerning for text
private static final int
DEFAULT_PAINT_FLAGS
Constructors Summary
public Paint()
Create a new paint with default settings.

        this(0);
    
public Paint(int flags)
Create a new paint with the specified flags. Use setFlags() to change these after the paint is created.

param
flags initial flag bits, as if they were passed via setFlags().

        mNativePaint = native_init();
        setFlags(flags | DEFAULT_PAINT_FLAGS);
    
public Paint(Paint paint)
Create a new paint, initialized with the attributes in the specified paint parameter.

param
paint Existing paint used to initialized the attributes of the new paint.

        mNativePaint = native_initWithPaint(paint.mNativePaint);
    
Methods Summary
public native floatascent()
Return the distance above (negative) the baseline (ascent) based on the current typeface and text size.

return
the distance above (negative) the baseline (ascent) based on the current typeface and text size.

public native intbreakText(char[] text, int index, int count, float maxWidth, float[] measuredWidth)
Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.

param
text The text to measure
param
index The offset into text to begin measuring at
param
count The number of maximum number of entries to measure. If count is negative, then the characters before index are measured in reverse order. This allows for measuring the end of string.
param
maxWidth The maximum width to accumulate.
param
measuredWidth Optional. If not null, returns the actual width measured.
return
The number of chars that were measured. Will always be <= abs(count).

public intbreakText(java.lang.CharSequence text, int start, int end, boolean measureForwards, float maxWidth, float[] measuredWidth)
Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.

param
text The text to measure
param
start The offset into text to begin measuring at
param
end The end of the text slice to measure.
param
measureForwards If true, measure forwards, starting at start. Otherwise, measure backwards, starting with end.
param
maxWidth The maximum width to accumulate.
param
measuredWidth Optional. If not null, returns the actual width measured.
return
The number of chars that were measured. Will always be <= abs(end - start).

        if (start == 0 && text instanceof String && end == text.length()) {
            return breakText((String) text, measureForwards, maxWidth,
                             measuredWidth);
        }

        char[] buf = TemporaryBuffer.obtain(end - start);
        int result;

        TextUtils.getChars(text, start, end, buf, 0);

        if (measureForwards) {
            result = breakText(buf, 0, end - start, maxWidth, measuredWidth);
        } else {
            result = breakText(buf, 0, -(end - start), maxWidth, measuredWidth);
        }

        TemporaryBuffer.recycle(buf);
        return result;
    
public native intbreakText(java.lang.String text, boolean measureForwards, float maxWidth, float[] measuredWidth)
Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.

param
text The text to measure
param
measureForwards If true, measure forwards, starting at index. Otherwise, measure backwards, starting with the last character in the string.
param
maxWidth The maximum width to accumulate.
param
measuredWidth Optional. If not null, returns the actual width measured.
return
The number of chars that were measured. Will always be <= abs(count).

public voidclearShadowLayer()
Temporary API to clear the shadow layer.

        setShadowLayer(0, 0, 0, 0);
    
public native floatdescent()
Return the distance below (positive) the baseline (descent) based on the current typeface and text size.

return
the distance below (positive) the baseline (descent) based on the current typeface and text size.

protected voidfinalize()

        finalizer(mNativePaint);
    
private static native voidfinalizer(int nativePaint)

public native intgetAlpha()
Helper to getColor() that just returns the color's alpha value. This is the same as calling getColor() >>> 24. It always returns a value between 0 (completely transparent) and 255 (completely opaque).

return
the alpha component of the paint's color.

public native intgetColor()
Return the paint's color. Note that the color is a 32bit value containing alpha as well as r,g,b. This 32bit value is not premultiplied, meaning that its alpha can be any value, regardless of the values of r,g,b. See the Color class for more details.

return
the paint's color (and alpha).

public ColorFiltergetColorFilter()
Get the paint's colorfilter (maybe be null).

return
the paint's colorfilter (maybe be null)

        return mColorFilter;
    
public booleangetFillPath(Path src, Path dst)
Applies any/all effects (patheffect, stroking) to src, returning the result in dst. The result is that drawing src with this paint will be the same as drawing dst with a default paint (at least from the geometric perspective).

param
src input path
param
dst output path (may be the same as src)
return
true if the path should be filled, or false if it should be drawn with a hairline (width == 0)

        return native_getFillPath(mNativePaint, src.ni(), dst.ni());
    
public native intgetFlags()
Return the paint's flags. Use the Flag enum to test flag values.

return
the paint's flags (see enums ending in _Flag for bit masks)

public native floatgetFontMetrics(android.graphics.Paint$FontMetrics metrics)
Return the font's recommended interline spacing, given the Paint's settings for typeface, textSize, etc. If metrics is not null, return the fontmetric values in it.

param
metrics If this object is not null, its fields are filled with the appropriate values given the paint's text attributes.
return
the font's recommended interline spacing.

public android.graphics.Paint$FontMetricsgetFontMetrics()
Allocates a new FontMetrics object, and then calls getFontMetrics(fm) with it, returning the object.

        FontMetrics fm = new FontMetrics();
        getFontMetrics(fm);
        return fm;
    
public native intgetFontMetricsInt(android.graphics.Paint$FontMetricsInt fmi)
Return the font's interline spacing, given the Paint's settings for typeface, textSize, etc. If metrics is not null, return the fontmetric values in it. Note: all values have been converted to integers from floats, in such a way has to make the answers useful for both spacing and clipping. If you want more control over the rounding, call getFontMetrics().

return
the font's interline spacing.

public android.graphics.Paint$FontMetricsIntgetFontMetricsInt()

        FontMetricsInt fm = new FontMetricsInt();
        getFontMetricsInt(fm);
        return fm;
    
public floatgetFontSpacing()
Return the recommend line spacing based on the current typeface and text size.

return
recommend line spacing based on the current typeface and text size.

        return getFontMetrics(null);
    
public MaskFiltergetMaskFilter()
Get the paint's maskfilter object.

return
the paint's maskfilter (or null)

        return mMaskFilter;
    
public PathEffectgetPathEffect()
Get the paint's patheffect object.

return
the paint's patheffect (or null)

        return mPathEffect;
    
public RasterizergetRasterizer()
Get the paint's rasterizer (or null).

The raster controls/modifies how paths/text are turned into alpha masks.

return
the paint's rasterizer (or null)

        return mRasterizer;
    
public ShadergetShader()
Get the paint's shader object.

return
the paint's shader (or null)

        return mShader;
    
public android.graphics.Paint$CapgetStrokeCap()
Return the paint's Cap, controlling how the start and end of stroked lines and paths are treated.

return
the line cap style for the paint, used whenever the paint's style is Stroke or StrokeAndFill.

        return sCapArray[native_getStrokeCap(mNativePaint)];
    
public android.graphics.Paint$JoingetStrokeJoin()
Return the paint's stroke join type.

return
the paint's Join.

        return sJoinArray[native_getStrokeJoin(mNativePaint)];
    
public native floatgetStrokeMiter()
Return the paint's stroke miter value. Used to control the behavior of miter joins when the joins angle is sharp.

return
the paint's miter limit, used whenever the paint's style is Stroke or StrokeAndFill.

public native floatgetStrokeWidth()
Return the width for stroking.

A value of 0 strokes in hairline mode. Hairlines always draws a single pixel independent of the canva's matrix.

return
the paint's stroke width, used whenever the paint's style is Stroke or StrokeAndFill.

public android.graphics.Paint$StylegetStyle()
Return the paint's style, used for controlling how primitives' geometries are interpreted (except for drawBitmap, which always assumes FILL_STYLE).

return
the paint's style setting (Fill, Stroke, StrokeAndFill)

        return sStyleArray[native_getStyle(mNativePaint)];
    
public android.graphics.Paint$AligngetTextAlign()
Return the paint's Align value for drawing text. This controls how the text is positioned relative to its origin. LEFT align means that all of the text will be drawn to the right of its origin (i.e. the origin specifieds the LEFT edge of the text) and so on.

return
the paint's Align value for drawing text.

        return sAlignArray[native_getTextAlign(mNativePaint)];
    
public voidgetTextBounds(java.lang.String text, int start, int end, Rect bounds)
Return in bounds (allocated by the caller) the smallest rectangle that encloses all of the characters, with an implied origin at (0,0).

param
text String to measure and return its bounds
param
start Index of the first char in the string to measure
param
end 1 past the last char in the string measure
param
bounds Returns the unioned bounds of all the text. Must be allocated by the caller.

        if ((start | end | (end - start) | (text.length() - end)) < 0) {
            throw new IndexOutOfBoundsException();
        }
        if (bounds == null) {
            throw new NullPointerException("need bounds Rect");
        }
        nativeGetStringBounds(mNativePaint, text, start, end, bounds);
    
public voidgetTextBounds(char[] text, int index, int count, Rect bounds)
Return in bounds (allocated by the caller) the smallest rectangle that encloses all of the characters, with an implied origin at (0,0).

param
text Array of chars to measure and return their unioned bounds
param
index Index of the first char in the array to measure
param
count The number of chars, beginning at index, to measure
param
bounds Returns the unioned bounds of all the text. Must be allocated by the caller.

        if ((index | count) < 0 || index + count > text.length) {
            throw new ArrayIndexOutOfBoundsException();
        }
        if (bounds == null) {
            throw new NullPointerException("need bounds Rect");
        }
        nativeGetCharArrayBounds(mNativePaint, text, index, count, bounds);
    
public voidgetTextPath(char[] text, int index, int count, float x, float y, Path path)
Return the path (outline) for the specified text. Note: just like Canvas.drawText, this will respect the Align setting in the paint.

param
text The text to retrieve the path from
param
index The index of the first character in text
param
count The number of characterss starting with index
param
x The x coordinate of the text's origin
param
y The y coordinate of the text's origin
param
path The path to receive the data describing the text. Must be allocated by the caller.

        if ((index | count) < 0 || index + count > text.length) {
            throw new ArrayIndexOutOfBoundsException();
        }
        native_getTextPath(mNativePaint, text, index, count, x, y, path.ni());
    
public voidgetTextPath(java.lang.String text, int start, int end, float x, float y, Path path)
Return the path (outline) for the specified text. Note: just like Canvas.drawText, this will respect the Align setting in the paint.

param
text The text to retrieve the path from
param
start The first character in the text
param
end 1 past the last charcter in the text
param
x The x coordinate of the text's origin
param
y The y coordinate of the text's origin
param
path The path to receive the data describing the text. Must be allocated by the caller.

        if ((start | end | (end - start) | (text.length() - end)) < 0) {
            throw new IndexOutOfBoundsException();
        }
        native_getTextPath(mNativePaint, text, start, end, x, y, path.ni());
    
public native floatgetTextScaleX()
Return the paint's horizontal scale factor for text. The default value is 1.0.

return
the paint's scale factor in X for drawing/measuring text

public native floatgetTextSize()
Return the paint's text size.

return
the paint's text size.

public native floatgetTextSkewX()
Return the paint's horizontal skew factor for text. The default value is 0.

return
the paint's skew factor in X for drawing text.

public intgetTextWidths(char[] text, int index, int count, float[] widths)
Return the advance widths for the characters in the string.

param
text The text to measure
param
index The index of the first char to to measure
param
count The number of chars starting with index to measure
param
widths array to receive the advance widths of the characters. Must be at least a large as count.
return
the actual number of widths returned.

        if ((index | count) < 0 || index + count > text.length
                || count > widths.length) {
            throw new ArrayIndexOutOfBoundsException();
        }
        return native_getTextWidths(mNativePaint, text, index, count, widths);
    
public intgetTextWidths(java.lang.CharSequence text, int start, int end, float[] widths)
Return the advance widths for the characters in the string.

param
text The text to measure
param
start The index of the first char to to measure
param
end The end of the text slice to measure
param
widths array to receive the advance widths of the characters. Must be at least a large as (end - start).
return
the actual number of widths returned.

        if (text instanceof String) {
            return getTextWidths((String) text, start, end, widths);
        }
        if (text instanceof SpannedString ||
            text instanceof SpannableString) {
            return getTextWidths(text.toString(), start, end, widths);
        }
        if (text instanceof GraphicsOperations) {
            return ((GraphicsOperations) text).getTextWidths(start, end,
                                                                 widths, this);
        }

        char[] buf = TemporaryBuffer.obtain(end - start);
    	TextUtils.getChars(text, start, end, buf, 0);
    	int result = getTextWidths(buf, 0, end - start, widths);
        TemporaryBuffer.recycle(buf);
    	return result;
    
public intgetTextWidths(java.lang.String text, int start, int end, float[] widths)
Return the advance widths for the characters in the string.

param
text The text to measure
param
start The index of the first char to to measure
param
end The end of the text slice to measure
param
widths array to receive the advance widths of the characters. Must be at least a large as the text.
return
the number of unichars in the specified text.

        if ((start | end | (end - start) | (text.length() - end)) < 0) {
            throw new IndexOutOfBoundsException();
        }
        if (end - start > widths.length) {
            throw new ArrayIndexOutOfBoundsException();
        }
        return native_getTextWidths(mNativePaint, text, start, end, widths);
    
public intgetTextWidths(java.lang.String text, float[] widths)
Return the advance widths for the characters in the string.

param
text The text to measure
param
widths array to receive the advance widths of the characters. Must be at least a large as the text.
return
the number of unichars in the specified text.

        return getTextWidths(text, 0, text.length(), widths);
    
public TypefacegetTypeface()
Get the paint's typeface object.

The typeface object identifies which font to use when drawing or measuring text.

return
the paint's typeface (or null)

        return mTypeface;
    
public XfermodegetXfermode()
Get the paint's xfermode object.

return
the paint's xfermode (or null)

        return mXfermode;
    
public final booleanisAntiAlias()
Helper for getFlags(), returning true if ANTI_ALIAS_FLAG bit is set AntiAliasing smooths out the edges of what is being drawn, but is has no impact on the interior of the shape. See setDither() and setFilterBitmap() to affect how colors are treated.

return
true if the antialias bit is set in the paint's flags.

        return (getFlags() & ANTI_ALIAS_FLAG) != 0;
    
public final booleanisDither()
Helper for getFlags(), returning true if DITHER_FLAG bit is set Dithering affects how colors that are higher precision than the device are down-sampled. No dithering is generally faster, but higher precision colors are just truncated down (e.g. 8888 -> 565). Dithering tries to distribute the error inherent in this process, to reduce the visual artifacts.

return
true if the dithering bit is set in the paint's flags.

        return (getFlags() & DITHER_FLAG) != 0;
    
public final booleanisFakeBoldText()
Helper for getFlags(), returning true if FAKE_BOLD_TEXT_FLAG bit is set

return
true if the fakeBoldText bit is set in the paint's flags.

        return (getFlags() & FAKE_BOLD_TEXT_FLAG) != 0;
    
public final booleanisFilterBitmap()
Whether or not the bitmap filter is activated. Filtering affects the sampling of bitmaps when they are transformed. Filtering does not affect how the colors in the bitmap are converted into device pixels. That is dependent on dithering and xfermodes.

see
#setFilterBitmap(boolean) setFilterBitmap()

        return (getFlags() & FILTER_BITMAP_FLAG) != 0;
    
public final booleanisLinearText()
Helper for getFlags(), returning true if LINEAR_TEXT_FLAG bit is set

return
true if the lineartext bit is set in the paint's flags

        return (getFlags() & LINEAR_TEXT_FLAG) != 0;
    
public final booleanisStrikeThruText()
Helper for getFlags(), returning true if STRIKE_THRU_TEXT_FLAG bit is set

return
true if the strikeThruText bit is set in the paint's flags.

        return (getFlags() & STRIKE_THRU_TEXT_FLAG) != 0;
    
public final booleanisSubpixelText()
Helper for getFlags(), returning true if SUBPIXEL_TEXT_FLAG bit is set

return
true if the subpixel bit is set in the paint's flags

        return (getFlags() & SUBPIXEL_TEXT_FLAG) != 0;
    
public final booleanisUnderlineText()
Helper for getFlags(), returning true if UNDERLINE_TEXT_FLAG bit is set

return
true if the underlineText bit is set in the paint's flags.

        return (getFlags() & UNDERLINE_TEXT_FLAG) != 0;
    
public native floatmeasureText(char[] text, int index, int count)
Return the width of the text.

param
text The text to measure
param
index The index of the first character to start measuring
param
count THe number of characters to measure, beginning with start
return
The width of the text

public native floatmeasureText(java.lang.String text, int start, int end)
Return the width of the text.

param
text The text to measure
param
start The index of the first character to start measuring
param
end 1 beyond the index of the last character to measure
return
The width of the text

public native floatmeasureText(java.lang.String text)
Return the width of the text.

param
text The text to measure
return
The width of the text

public floatmeasureText(java.lang.CharSequence text, int start, int end)
Return the width of the text.

param
text The text to measure
param
start The index of the first character to start measuring
param
end 1 beyond the index of the last character to measure
return
The width of the text

        if (text instanceof String) {
            return measureText((String)text, start, end);
        }
        if (text instanceof SpannedString ||
            text instanceof SpannableString) {
            return measureText(text.toString(), start, end);
        }
        if (text instanceof GraphicsOperations) {
            return ((GraphicsOperations)text).measureText(start, end, this);
        }

        char[] buf = TemporaryBuffer.obtain(end - start);
    	TextUtils.getChars(text, start, end, buf, 0);
    	float result = measureText(buf, 0, end - start);
        TemporaryBuffer.recycle(buf);
    	return result;
    
private static native voidnativeGetCharArrayBounds(int nativePaint, char[] text, int index, int count, Rect bounds)

private static native voidnativeGetStringBounds(int nativePaint, java.lang.String text, int start, int end, Rect bounds)

private static native booleannative_getFillPath(int native_object, int src, int dst)

private static native floatnative_getFontMetrics(int native_paint, android.graphics.Paint$FontMetrics metrics)

private static native intnative_getStrokeCap(int native_object)

private static native intnative_getStrokeJoin(int native_object)

private static native intnative_getStyle(int native_object)

private static native intnative_getTextAlign(int native_object)

private static native voidnative_getTextPath(int native_object, char[] text, int index, int count, float x, float y, int path)

private static native voidnative_getTextPath(int native_object, java.lang.String text, int start, int end, float x, float y, int path)

private static native intnative_getTextWidths(int native_object, char[] text, int index, int count, float[] widths)

private static native intnative_getTextWidths(int native_object, java.lang.String text, int start, int end, float[] widths)

private static native intnative_init()

private static native intnative_initWithPaint(int paint)

private static native voidnative_reset(int native_object)

private static native voidnative_set(int native_dst, int native_src)

private static native intnative_setColorFilter(int native_object, int filter)

private static native intnative_setMaskFilter(int native_object, int maskfilter)

private static native intnative_setPathEffect(int native_object, int effect)

private static native intnative_setRasterizer(int native_object, int rasterizer)

private static native intnative_setShader(int native_object, int shader)

private static native voidnative_setStrokeCap(int native_object, int cap)

private static native voidnative_setStrokeJoin(int native_object, int join)

private static native voidnative_setStyle(int native_object, int style)

private static native voidnative_setTextAlign(int native_object, int align)

private static native intnative_setTypeface(int native_object, int typeface)

private static native intnative_setXfermode(int native_object, int xfermode)

public voidreset()
Restores the paint to its default settings.

        native_reset(mNativePaint);
        setFlags(DEFAULT_PAINT_FLAGS);
    
public voidset(android.graphics.Paint src)
Copy the fields from src into this paint. This is equivalent to calling get() on all of the src fields, and calling the corresponding set() methods on this.

        if (this != src) {
            // copy over the native settings
            native_set(mNativePaint, src.mNativePaint);
            // copy over our java settings
            mColorFilter    = src.mColorFilter;
            mMaskFilter     = src.mMaskFilter;
            mPathEffect     = src.mPathEffect;
            mRasterizer     = src.mRasterizer;
            mShader         = src.mShader;
            mTypeface       = src.mTypeface;
            mXfermode       = src.mXfermode;
        }
    
public voidsetARGB(int a, int r, int g, int b)
Helper to setColor(), that takes a,r,g,b and constructs the color int

param
a The new alpha component (0..255) of the paint's color.
param
r The new red component (0..255) of the paint's color.
param
g The new green component (0..255) of the paint's color.
param
b The new blue component (0..255) of the paint's color.

        setColor((a << 24) | (r << 16) | (g << 8) | b);
    
public native voidsetAlpha(int a)
Helper to setColor(), that only assigns the color's alpha value, leaving its r,g,b values unchanged. Results are undefined if the alpha value is outside of the range [0..255]

param
a set the alpha component [0..255] of the paint's color.

public native voidsetAntiAlias(boolean aa)
Helper for setFlags(), setting or clearing the ANTI_ALIAS_FLAG bit AntiAliasing smooths out the edges of what is being drawn, but is has no impact on the interior of the shape. See setDither() and setFilterBitmap() to affect how colors are treated.

param
aa true to set the antialias bit in the flags, false to clear it

public native voidsetColor(int color)
Set the paint's color. Note that the color is an int containing alpha as well as r,g,b. This 32bit value is not premultiplied, meaning that its alpha can be any value, regardless of the values of r,g,b. See the Color class for more details.

param
color The new color (including alpha) to set in the paint.

public ColorFiltersetColorFilter(ColorFilter filter)
Set or clear the paint's colorfilter, returning the parameter.

param
filter May be null. The new filter to be installed in the paint
return
filter

        int filterNative = 0;
        if (filter != null)
            filterNative = filter.native_instance;
        native_setColorFilter(mNativePaint, filterNative);
        mColorFilter = filter;
        return filter;
    
public native voidsetDither(boolean dither)
Helper for setFlags(), setting or clearing the DITHER_FLAG bit Dithering affects how colors that are higher precision than the device are down-sampled. No dithering is generally faster, but higher precision colors are just truncated down (e.g. 8888 -> 565). Dithering tries to distribute the error inherent in this process, to reduce the visual artifacts.

param
dither true to set the dithering bit in flags, false to clear it

public native voidsetFakeBoldText(boolean fakeBoldText)
Helper for setFlags(), setting or clearing the STRIKE_THRU_TEXT_FLAG bit

param
fakeBoldText true to set the fakeBoldText bit in the paint's flags, false to clear it.

public native voidsetFilterBitmap(boolean filter)
Helper for setFlags(), setting or clearing the FILTER_BITMAP_FLAG bit. Filtering affects the sampling of bitmaps when they are transformed. Filtering does not affect how the colors in the bitmap are converted into device pixels. That is dependent on dithering and xfermodes.

param
filter true to set the FILTER_BITMAP_FLAG bit in the paint's flags, false to clear it.

public native voidsetFlags(int flags)
Set the paint's flags. Use the Flag enum to specific flag values.

param
flags The new flag bits for the paint

public native voidsetLinearText(boolean linearText)
Helper for setFlags(), setting or clearing the LINEAR_TEXT_FLAG bit

param
linearText true to set the linearText bit in the paint's flags, false to clear it.

public MaskFiltersetMaskFilter(MaskFilter maskfilter)
Set or clear the maskfilter object.

Pass null to clear any previous maskfilter. As a convenience, the parameter passed is also returned.

param
maskfilter May be null. The maskfilter to be installed in the paint
return
maskfilter

        int maskfilterNative = 0;
        if (maskfilter != null) {
            maskfilterNative = maskfilter.native_instance;
        }
        native_setMaskFilter(mNativePaint, maskfilterNative);
        mMaskFilter = maskfilter;
        return maskfilter;
    
public PathEffectsetPathEffect(PathEffect effect)
Set or clear the patheffect object.

Pass null to clear any previous patheffect. As a convenience, the parameter passed is also returned.

param
effect May be null. The patheffect to be installed in the paint
return
effect

        int effectNative = 0;
        if (effect != null) {
            effectNative = effect.native_instance;
        }
        native_setPathEffect(mNativePaint, effectNative);
        mPathEffect = effect;
        return effect;
    
public RasterizersetRasterizer(Rasterizer rasterizer)
Set or clear the rasterizer object.

Pass null to clear any previous rasterizer. As a convenience, the parameter passed is also returned.

param
rasterizer May be null. The new rasterizer to be installed in the paint.
return
rasterizer

        int rasterizerNative = 0;
        if (rasterizer != null) {
            rasterizerNative = rasterizer.native_instance;
        }
        native_setRasterizer(mNativePaint, rasterizerNative);
        mRasterizer = rasterizer;
        return rasterizer;
    
public ShadersetShader(Shader shader)
Set or clear the shader object.

Pass null to clear any previous shader. As a convenience, the parameter passed is also returned.

param
shader May be null. the new shader to be installed in the paint
return
shader

        int shaderNative = 0;
        if (shader != null)
            shaderNative = shader.native_instance;
        native_setShader(mNativePaint, shaderNative);
        mShader = shader;
        return shader;
    
public native voidsetShadowLayer(float radius, float dx, float dy, int color)
Temporary API to expose layer drawing. This draws a shadow layer below the main layer, with the specified offset and color, and blur radius. If radius is 0, then the shadow layer is removed.

public native voidsetStrikeThruText(boolean strikeThruText)
Helper for setFlags(), setting or clearing the STRIKE_THRU_TEXT_FLAG bit

param
strikeThruText true to set the strikeThruText bit in the paint's flags, false to clear it.

public voidsetStrokeCap(android.graphics.Paint$Cap cap)
Set the paint's Cap.

param
cap set the paint's line cap style, used whenever the paint's style is Stroke or StrokeAndFill.

        native_setStrokeCap(mNativePaint, cap.nativeInt);
    
public voidsetStrokeJoin(android.graphics.Paint$Join join)
Set the paint's Join.

param
join set the paint's Join, used whenever the paint's style is Stroke or StrokeAndFill.

        native_setStrokeJoin(mNativePaint, join.nativeInt);
    
public native voidsetStrokeMiter(float miter)
Set the paint's stroke miter value. This is used to control the behavior of miter joins when the joins angle is sharp. This value must be >= 0.

param
miter set the miter limit on the paint, used whenever the paint's style is Stroke or StrokeAndFill.

public native voidsetStrokeWidth(float width)
Set the width for stroking. Pass 0 to stroke in hairline mode. Hairlines always draws a single pixel independent of the canva's matrix.

param
width set the paint's stroke width, used whenever the paint's style is Stroke or StrokeAndFill.

public voidsetStyle(android.graphics.Paint$Style style)
Set the paint's style, used for controlling how primitives' geometries are interpreted (except for drawBitmap, which always assumes Fill).

param
style The new style to set in the paint

        native_setStyle(mNativePaint, style.nativeInt);
    
public native voidsetSubpixelText(boolean subpixelText)
Helper for setFlags(), setting or clearing the SUBPIXEL_TEXT_FLAG bit

param
subpixelText true to set the subpixelText bit in the paint's flags, false to clear it.

public voidsetTextAlign(android.graphics.Paint$Align align)
Set the paint's text alignment. This controls how the text is positioned relative to its origin. LEFT align means that all of the text will be drawn to the right of its origin (i.e. the origin specifieds the LEFT edge of the text) and so on.

param
align set the paint's Align value for drawing text.

        native_setTextAlign(mNativePaint, align.nativeInt);
    
public native voidsetTextScaleX(float scaleX)
Set the paint's horizontal scale factor for text. The default value is 1.0. Values > 1.0 will stretch the text wider. Values < 1.0 will stretch the text narrower.

param
scaleX set the paint's scale in X for drawing/measuring text.

public native voidsetTextSize(float textSize)
Set the paint's text size. This value must be > 0

param
textSize set the paint's text size.

public native voidsetTextSkewX(float skewX)
Set the paint's horizontal skew factor for text. The default value is 0. For approximating oblique text, use values around -0.25.

param
skewX set the paint's skew factor in X for drawing text.

public TypefacesetTypeface(Typeface typeface)
Set or clear the typeface object.

Pass null to clear any previous typeface. As a convenience, the parameter passed is also returned.

param
typeface May be null. The typeface to be installed in the paint
return
typeface

        int typefaceNative = 0;
        if (typeface != null) {
            typefaceNative = typeface.native_instance;
        }
        native_setTypeface(mNativePaint, typefaceNative);
        mTypeface = typeface;
        return typeface;
    
public native voidsetUnderlineText(boolean underlineText)
Helper for setFlags(), setting or clearing the UNDERLINE_TEXT_FLAG bit

param
underlineText true to set the underlineText bit in the paint's flags, false to clear it.

public XfermodesetXfermode(Xfermode xfermode)
Set or clear the xfermode object.

Pass null to clear any previous xfermode. As a convenience, the parameter passed is also returned.

param
xfermode May be null. The xfermode to be installed in the paint
return
xfermode

        int xfermodeNative = 0;
        if (xfermode != null)
            xfermodeNative = xfermode.native_instance;
        native_setXfermode(mNativePaint, xfermodeNative);
        mXfermode = xfermode;
        return xfermode;