Methods Summary |
---|
public native float | ascent()Return the distance above (negative) the baseline (ascent) based on the
current typeface and text size.
|
public native int | breakText(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.
|
public int | breakText(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.
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 int | breakText(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.
|
public void | clearShadowLayer()Temporary API to clear the shadow layer.
setShadowLayer(0, 0, 0, 0);
|
public native float | descent()Return the distance below (positive) the baseline (descent) based on the
current typeface and text size.
|
protected void | finalize()
finalizer(mNativePaint);
|
private static native void | finalizer(int nativePaint)
|
public native int | getAlpha()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).
|
public native int | getColor()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.
|
public ColorFilter | getColorFilter()Get the paint's colorfilter (maybe be null).
return mColorFilter;
|
public boolean | getFillPath(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).
return native_getFillPath(mNativePaint, src.ni(), dst.ni());
|
public native int | getFlags()Return the paint's flags. Use the Flag enum to test flag values.
|
public native float | getFontMetrics(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.
|
public android.graphics.Paint$FontMetrics | getFontMetrics()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 int | getFontMetricsInt(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().
|
public android.graphics.Paint$FontMetricsInt | getFontMetricsInt()
FontMetricsInt fm = new FontMetricsInt();
getFontMetricsInt(fm);
return fm;
|
public float | getFontSpacing()Return the recommend line spacing based on the current typeface and
text size.
return getFontMetrics(null);
|
public MaskFilter | getMaskFilter()Get the paint's maskfilter object.
return mMaskFilter;
|
public PathEffect | getPathEffect()Get the paint's patheffect object.
return mPathEffect;
|
public Rasterizer | getRasterizer()Get the paint's rasterizer (or null).
The raster controls/modifies how paths/text are turned into alpha masks.
return mRasterizer;
|
public Shader | getShader()Get the paint's shader object.
return mShader;
|
public android.graphics.Paint$Cap | getStrokeCap()Return the paint's Cap, controlling how the start and end of stroked
lines and paths are treated.
return sCapArray[native_getStrokeCap(mNativePaint)];
|
public android.graphics.Paint$Join | getStrokeJoin()Return the paint's stroke join type.
return sJoinArray[native_getStrokeJoin(mNativePaint)];
|
public native float | getStrokeMiter()Return the paint's stroke miter value. Used to control the behavior
of miter joins when the joins angle is sharp.
|
public native float | getStrokeWidth()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.
|
public android.graphics.Paint$Style | getStyle()Return the paint's style, used for controlling how primitives'
geometries are interpreted (except for drawBitmap, which always assumes
FILL_STYLE).
return sStyleArray[native_getStyle(mNativePaint)];
|
public android.graphics.Paint$Align | getTextAlign()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 sAlignArray[native_getTextAlign(mNativePaint)];
|
public void | getTextBounds(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).
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 void | getTextBounds(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).
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 void | getTextPath(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.
if ((index | count) < 0 || index + count > text.length) {
throw new ArrayIndexOutOfBoundsException();
}
native_getTextPath(mNativePaint, text, index, count, x, y, path.ni());
|
public void | getTextPath(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.
if ((start | end | (end - start) | (text.length() - end)) < 0) {
throw new IndexOutOfBoundsException();
}
native_getTextPath(mNativePaint, text, start, end, x, y, path.ni());
|
public native float | getTextScaleX()Return the paint's horizontal scale factor for text. The default value
is 1.0.
|
public native float | getTextSize()Return the paint's text size.
|
public native float | getTextSkewX()Return the paint's horizontal skew factor for text. The default value
is 0.
|
public int | getTextWidths(char[] text, int index, int count, float[] widths)Return the advance widths for the characters in the string.
if ((index | count) < 0 || index + count > text.length
|| count > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
return native_getTextWidths(mNativePaint, text, index, count, widths);
|
public int | getTextWidths(java.lang.CharSequence text, int start, int end, float[] widths)Return the advance widths for the characters in the string.
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 int | getTextWidths(java.lang.String text, int start, int end, float[] widths)Return the advance widths for the characters in the string.
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 int | getTextWidths(java.lang.String text, float[] widths)Return the advance widths for the characters in the string.
return getTextWidths(text, 0, text.length(), widths);
|
public Typeface | getTypeface()Get the paint's typeface object.
The typeface object identifies which font to use when drawing or
measuring text.
return mTypeface;
|
public Xfermode | getXfermode()Get the paint's xfermode object.
return mXfermode;
|
public final boolean | isAntiAlias()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 (getFlags() & ANTI_ALIAS_FLAG) != 0;
|
public final boolean | isDither()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 (getFlags() & DITHER_FLAG) != 0;
|
public final boolean | isFakeBoldText()Helper for getFlags(), returning true if FAKE_BOLD_TEXT_FLAG bit is set
return (getFlags() & FAKE_BOLD_TEXT_FLAG) != 0;
|
public final boolean | isFilterBitmap()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.
return (getFlags() & FILTER_BITMAP_FLAG) != 0;
|
public final boolean | isLinearText()Helper for getFlags(), returning true if LINEAR_TEXT_FLAG bit is set
return (getFlags() & LINEAR_TEXT_FLAG) != 0;
|
public final boolean | isStrikeThruText()Helper for getFlags(), returning true if STRIKE_THRU_TEXT_FLAG bit is set
return (getFlags() & STRIKE_THRU_TEXT_FLAG) != 0;
|
public final boolean | isSubpixelText()Helper for getFlags(), returning true if SUBPIXEL_TEXT_FLAG bit is set
return (getFlags() & SUBPIXEL_TEXT_FLAG) != 0;
|
public final boolean | isUnderlineText()Helper for getFlags(), returning true if UNDERLINE_TEXT_FLAG bit is set
return (getFlags() & UNDERLINE_TEXT_FLAG) != 0;
|
public native float | measureText(char[] text, int index, int count)Return the width of the text.
|
public native float | measureText(java.lang.String text, int start, int end)Return the width of the text.
|
public native float | measureText(java.lang.String text)Return the width of the text.
|
public float | measureText(java.lang.CharSequence text, int start, int end)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 void | nativeGetCharArrayBounds(int nativePaint, char[] text, int index, int count, Rect bounds)
|
private static native void | nativeGetStringBounds(int nativePaint, java.lang.String text, int start, int end, Rect bounds)
|
private static native boolean | native_getFillPath(int native_object, int src, int dst)
|
private static native float | native_getFontMetrics(int native_paint, android.graphics.Paint$FontMetrics metrics)
|
private static native int | native_getStrokeCap(int native_object)
|
private static native int | native_getStrokeJoin(int native_object)
|
private static native int | native_getStyle(int native_object)
|
private static native int | native_getTextAlign(int native_object)
|
private static native void | native_getTextPath(int native_object, char[] text, int index, int count, float x, float y, int path)
|
private static native void | native_getTextPath(int native_object, java.lang.String text, int start, int end, float x, float y, int path)
|
private static native int | native_getTextWidths(int native_object, char[] text, int index, int count, float[] widths)
|
private static native int | native_getTextWidths(int native_object, java.lang.String text, int start, int end, float[] widths)
|
private static native int | native_init()
|
private static native int | native_initWithPaint(int paint)
|
private static native void | native_reset(int native_object)
|
private static native void | native_set(int native_dst, int native_src)
|
private static native int | native_setColorFilter(int native_object, int filter)
|
private static native int | native_setMaskFilter(int native_object, int maskfilter)
|
private static native int | native_setPathEffect(int native_object, int effect)
|
private static native int | native_setRasterizer(int native_object, int rasterizer)
|
private static native int | native_setShader(int native_object, int shader)
|
private static native void | native_setStrokeCap(int native_object, int cap)
|
private static native void | native_setStrokeJoin(int native_object, int join)
|
private static native void | native_setStyle(int native_object, int style)
|
private static native void | native_setTextAlign(int native_object, int align)
|
private static native int | native_setTypeface(int native_object, int typeface)
|
private static native int | native_setXfermode(int native_object, int xfermode)
|
public void | reset()Restores the paint to its default settings.
native_reset(mNativePaint);
setFlags(DEFAULT_PAINT_FLAGS);
|
public void | set(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 void | setARGB(int a, int r, int g, int b)Helper to setColor(), that takes a,r,g,b and constructs the color int
setColor((a << 24) | (r << 16) | (g << 8) | b);
|
public native void | setAlpha(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]
|
public native void | setAntiAlias(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.
|
public native void | setColor(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.
|
public ColorFilter | setColorFilter(ColorFilter filter)Set or clear the paint's colorfilter, returning the parameter.
int filterNative = 0;
if (filter != null)
filterNative = filter.native_instance;
native_setColorFilter(mNativePaint, filterNative);
mColorFilter = filter;
return filter;
|
public native void | setDither(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.
|
public native void | setFakeBoldText(boolean fakeBoldText)Helper for setFlags(), setting or clearing the STRIKE_THRU_TEXT_FLAG bit
|
public native void | setFilterBitmap(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.
|
public native void | setFlags(int flags)Set the paint's flags. Use the Flag enum to specific flag values.
|
public native void | setLinearText(boolean linearText)Helper for setFlags(), setting or clearing the LINEAR_TEXT_FLAG bit
|
public MaskFilter | setMaskFilter(MaskFilter maskfilter)Set or clear the maskfilter object.
Pass null to clear any previous maskfilter.
As a convenience, the parameter passed is also returned.
int maskfilterNative = 0;
if (maskfilter != null) {
maskfilterNative = maskfilter.native_instance;
}
native_setMaskFilter(mNativePaint, maskfilterNative);
mMaskFilter = maskfilter;
return maskfilter;
|
public PathEffect | setPathEffect(PathEffect effect)Set or clear the patheffect object.
Pass null to clear any previous patheffect.
As a convenience, the parameter passed is also returned.
int effectNative = 0;
if (effect != null) {
effectNative = effect.native_instance;
}
native_setPathEffect(mNativePaint, effectNative);
mPathEffect = effect;
return effect;
|
public Rasterizer | setRasterizer(Rasterizer rasterizer)Set or clear the rasterizer object.
Pass null to clear any previous rasterizer.
As a convenience, the parameter passed is also returned.
int rasterizerNative = 0;
if (rasterizer != null) {
rasterizerNative = rasterizer.native_instance;
}
native_setRasterizer(mNativePaint, rasterizerNative);
mRasterizer = rasterizer;
return rasterizer;
|
public Shader | setShader(Shader shader)Set or clear the shader object.
Pass null to clear any previous shader.
As a convenience, the parameter passed is also returned.
int shaderNative = 0;
if (shader != null)
shaderNative = shader.native_instance;
native_setShader(mNativePaint, shaderNative);
mShader = shader;
return shader;
|
public native void | setShadowLayer(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 void | setStrikeThruText(boolean strikeThruText)Helper for setFlags(), setting or clearing the STRIKE_THRU_TEXT_FLAG bit
|
public void | setStrokeCap(android.graphics.Paint$Cap cap)Set the paint's Cap.
native_setStrokeCap(mNativePaint, cap.nativeInt);
|
public void | setStrokeJoin(android.graphics.Paint$Join join)Set the paint's Join.
native_setStrokeJoin(mNativePaint, join.nativeInt);
|
public native void | setStrokeMiter(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.
|
public native void | setStrokeWidth(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.
|
public void | setStyle(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).
native_setStyle(mNativePaint, style.nativeInt);
|
public native void | setSubpixelText(boolean subpixelText)Helper for setFlags(), setting or clearing the SUBPIXEL_TEXT_FLAG bit
|
public void | setTextAlign(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.
native_setTextAlign(mNativePaint, align.nativeInt);
|
public native void | setTextScaleX(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.
|
public native void | setTextSize(float textSize)Set the paint's text size. This value must be > 0
|
public native void | setTextSkewX(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.
|
public Typeface | setTypeface(Typeface typeface)Set or clear the typeface object.
Pass null to clear any previous typeface.
As a convenience, the parameter passed is also returned.
int typefaceNative = 0;
if (typeface != null) {
typefaceNative = typeface.native_instance;
}
native_setTypeface(mNativePaint, typefaceNative);
mTypeface = typeface;
return typeface;
|
public native void | setUnderlineText(boolean underlineText)Helper for setFlags(), setting or clearing the UNDERLINE_TEXT_FLAG bit
|
public Xfermode | setXfermode(Xfermode xfermode)Set or clear the xfermode object.
Pass null to clear any previous xfermode.
As a convenience, the parameter passed is also returned.
int xfermodeNative = 0;
if (xfermode != null)
xfermodeNative = xfermode.native_instance;
native_setXfermode(mNativePaint, xfermodeNative);
mXfermode = xfermode;
return xfermode;
|