本文整理汇总了Java中android.graphics.Paint.getTextSize方法的典型用法代码示例。如果您正苦于以下问题:Java Paint.getTextSize方法的具体用法?Java Paint.getTextSize怎么用?Java Paint.getTextSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.graphics.Paint
的用法示例。
在下文中一共展示了Paint.getTextSize方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: draw
import android.graphics.Paint; //导入方法依赖的package包/类
@Override public void draw(Canvas canvas, CharSequence text, int start, int end,
float defaultX, int top, int defaultY, int bottom, Paint paint) {
float x = 0;
float y = 0;
switch (position) {
case RIGHT_TOP:
x = canvas.getWidth() - paint.measureText(text, start, end);
y = paint.getTextSize();
break;
case RIGHT_CENTER:
x = canvas.getWidth() - paint.measureText(text, start, end);
y = canvas.getHeight() / 2;
break;
case RIGHT_BOTTOM:
x = canvas.getWidth() - paint.measureText(text, start, end);
y = canvas.getHeight() - paint.getFontMetricsInt().bottom;
break;
}
if (color != -1)
paint.setColor(color);
canvas.drawText(text, start, end, x, y, paint);
}
示例2: onDrawWeekDayLetters
import android.graphics.Paint; //导入方法依赖的package包/类
/**
* Invoked to draw first letters of days in week from the specified <var>top</var> position.
* <p>
* Default implementation draws day letters in one row on the specified <var>canvas</var>.
*
* @param canvas The canvas on which to draw day letters.
* @param top Top position from which to start the drawing. This is the position returned from
* {@link #onDrawTitle(Canvas, float, Paint)} method {@code +} {@link #getDayLettersOffsetVertical()}.
* @param paint Paint for day letters ready to be used for drawing.
* @return Updated top position from which following graphic components (day numbers) of this view
* will be drawn.
* @see #onDrawDayNumbers(Canvas, float, Paint)
*/
protected float onDrawWeekDayLetters(@NonNull Canvas canvas, float top, @NonNull Paint paint) {
/**
* We will draw 7 columns for each day in week.
*/
int dayIndex = mFirstDayOfWeek - 1;
paint.getTextBounds(Integer.toString(MAX_DAY_IN_MONTH), 0, 2, TEXT_BOUNDS);
float left = getPaddingLeft() + TEXT_BOUNDS.width() / 2f;
top += (int) paint.getTextSize();
for (int i = 0; i < DAYS_IN_WEEK; i++) {
final String dayLetter = DAY_LETTERS[dayIndex];
canvas.drawText(dayLetter, 0, 1, left, top, paint);
left += mSpacingHorizontal;
if (++dayIndex >= DAYS_IN_WEEK) {
dayIndex = 0;
}
}
return top;
}
示例3: calcTextSizeForRect
import android.graphics.Paint; //导入方法依赖的package包/类
private static float calcTextSizeForRect(String _text, Paint _textPaint, RectF _rectBounds) {
Matrix matrix = new Matrix();
Rect textBoundsTmp = new Rect();
//replace ones because for some fonts the 1 takes less space which causes issues
String text = _text.replace('1', '0');
//get current mText bounds
_textPaint.getTextBounds(text, 0, text.length(), textBoundsTmp);
RectF textBoundsTmpF = new RectF(textBoundsTmp);
matrix.setRectToRect(textBoundsTmpF, _rectBounds, Matrix.ScaleToFit.CENTER);
float values[] = new float[9];
matrix.getValues(values);
return _textPaint.getTextSize() * values[Matrix.MSCALE_X];
}
示例4: getSize
import android.graphics.Paint; //导入方法依赖的package包/类
@Override
public int getSize(@NonNull Paint paint, CharSequence text, int start, int end,
@Nullable Paint.FontMetricsInt fm) {
/* update FontMetricsInt or otherwise span does not get drawn when
it covers the whole text */
Paint.FontMetricsInt metrics = paint.getFontMetricsInt();
if (fm != null) {
fm.top = metrics.top;
fm.ascent = metrics.ascent;
fm.descent = metrics.descent;
fm.bottom = metrics.bottom;
}
return (int) (paint.getTextSize()*1.2);
}
示例5: draw1LineTextAnchorMid
import android.graphics.Paint; //导入方法依赖的package包/类
/**
* Draw a single line text, x, y is in the middle of the line.
*/
public void draw1LineTextAnchorMid(Canvas canvas, String text, double x, double y,
Paint paint, com.cyzapps.VisualMFP.Color color, double dTextSize, double dRotateDegree) {
float fRotateDegree = (float)dRotateDegree, fX = (float)x, fY = (float)y;
if (dRotateDegree != 0) {
canvas.rotate(fRotateDegree, fX, fY);
}
int nPaintOriginalColor = paint.getColor();
float fPaintOriginalTxtSize = paint.getTextSize();
if (color != null) {
paint.setColor(color.getARGB());
} // otherwise, use paint's color.
paint.setTextSize((float)dTextSize);
float fWidth = paint.measureText(text);
canvas.drawText(text, fX - fWidth/2, fY + (float)dTextSize/2 - paint.descent(), paint);
paint.setTextSize(fPaintOriginalTxtSize);
paint.setColor(nPaintOriginalColor);
if (dRotateDegree != 0) {
canvas.rotate(-fRotateDegree, fX, fY);
}
}
示例6: calcTextBounds
import android.graphics.Paint; //导入方法依赖的package包/类
public Rect calcTextBounds(String text, Paint paint, double dTextSize, double dSpaceBtwTxtLines) {
float fPaintOriginalTxtSize = paint.getTextSize();
Align alignOriginal = paint.getTextAlign();
Rect rectTxtBox = new Rect(); // rectTxtBox gives original text box and returns the actual text box
if (text == null) {
return rectTxtBox; // null protection.
}
paint.setTextSize((float)dTextSize);
paint.setTextAlign(Align.LEFT);
String[] lines = text.split("\n");
for (int i = 0; i < lines.length; ++i) {
int nTxtWidth = (int)Math.ceil(paint.measureText(lines[i]));
if (i == 0) {
rectTxtBox.left = 0;
rectTxtBox.right = nTxtWidth; //rect.right;
rectTxtBox.top = 0;
rectTxtBox.bottom = (int)Math.ceil(-paint.ascent() + paint.descent());//rect.height();
} else {
rectTxtBox.right = Math.max(rectTxtBox.right, nTxtWidth);
rectTxtBox.bottom = (int) (rectTxtBox.bottom + (int)Math.ceil(-paint.ascent() + paint.descent()) + dSpaceBtwTxtLines);
}
}
paint.setTextAlign(alignOriginal);
paint.setTextSize(fPaintOriginalTxtSize);
return rectTxtBox;
}
示例7: getSize
import android.graphics.Paint; //导入方法依赖的package包/类
@Override
public int getSize(@NonNull Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
mPaint = new Paint(paint);
mPaint.setTextSize(mTextSize);
if(mTextSize > paint.getTextSize() && fm != null){
Paint.FontMetricsInt newFm = mPaint.getFontMetricsInt();
fm.descent = newFm.descent;
fm.ascent = newFm.ascent;
fm.top = newFm.top;
fm.bottom = newFm.bottom;
}
return (int) mPaint.measureText(text, start, end);
}
示例8: getCharGeometryCacheKey
import android.graphics.Paint; //导入方法依赖的package包/类
private static int getCharGeometryCacheKey(final char referenceChar, final Paint paint) {
final int labelSize = (int)paint.getTextSize();
final Typeface face = paint.getTypeface();
final int codePointOffset = referenceChar << 15;
if (face == Typeface.DEFAULT) {
return codePointOffset + labelSize;
} else if (face == Typeface.DEFAULT_BOLD) {
return codePointOffset + labelSize + 0x1000;
} else if (face == Typeface.MONOSPACE) {
return codePointOffset + labelSize + 0x2000;
} else {
return codePointOffset + labelSize;
}
}
示例9: applyCodeTextStyle
import android.graphics.Paint; //导入方法依赖的package包/类
public void applyCodeTextStyle(@NonNull Paint paint) {
if (codeTextColor != 0) {
paint.setColor(codeTextColor);
}
// custom typeface was set
if (codeTypeface != null) {
paint.setTypeface(codeTypeface);
// please note that we won't be calculating textSize
// (like we do when no Typeface is provided), if it's some specific typeface
// we would confuse users about textSize
if (codeTextSize != 0) {
paint.setTextSize(codeTextSize);
}
} else {
paint.setTypeface(Typeface.MONOSPACE);
final float textSize;
if (codeTextSize != 0) {
textSize = codeTextSize;
} else {
textSize = paint.getTextSize() * CODE_DEF_TEXT_SIZE_RATIO;
}
paint.setTextSize(textSize);
}
}
示例10: draw
import android.graphics.Paint; //导入方法依赖的package包/类
@Override
public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x,
int top, int y, int bottom, @NonNull Paint paint) {
if (imageDrawable == null) return;
canvas.save();
int emojiSize = (int) (paint.getTextSize() * 1.1);
imageDrawable.setBounds(0, 0, emojiSize, emojiSize);
int transY = bottom - imageDrawable.getBounds().bottom;
transY -= paint.getFontMetricsInt().descent/2;
canvas.translate(x, transY);
imageDrawable.draw(canvas);
canvas.restore();
}
示例11: getCacheHeight
import android.graphics.Paint; //导入方法依赖的package包/类
protected Float getCacheHeight(BaseDanmaku danmaku, Paint paint) {
Float textSize = paint.getTextSize();
Float textHeight = sTextHeightCache.get(textSize);
if (textHeight == null) {
Paint.FontMetrics fontMetrics = paint.getFontMetrics();
textHeight = fontMetrics.descent - fontMetrics.ascent + fontMetrics.leading;
sTextHeightCache.put(textSize, textHeight);
}
return textHeight;
}
示例12: drawText
import android.graphics.Paint; //导入方法依赖的package包/类
/**
* Draw a multiple lines text.
*/
public void drawText(Canvas canvas, String text, double x, double y,
Paint paint, com.cyzapps.VisualMFP.Color color, double dTextSize, double dRotateDegree) {
float fRotateDegree = (float)dRotateDegree, fX = (float)x, fY = (float)y;
if (dRotateDegree != 0) {
canvas.rotate(fRotateDegree, fX, fY);
}
int nPaintOriginalColor = paint.getColor();
float fPaintOriginalTxtSize = paint.getTextSize();
if (color != null) {
paint.setColor(color.getARGB());
} // otherwise, use paint's color.
paint.setTextSize((float)dTextSize);
String[] lines = text.split("\n");
Rect rect = new Rect();
int yOff = 0;
for (int i = 0; i < lines.length; ++i) {
canvas.drawText(lines[i], fX, fY + paint.getFontMetrics().leading + paint.ascent() + yOff, paint);
paint.getTextBounds(lines[i], 0, lines[i].length(), rect);
yOff = (int) (yOff + rect.height() + mdSpaceBtwTxtLines); // space between lines
}
paint.setTextSize(fPaintOriginalTxtSize);
paint.setColor(nPaintOriginalColor);
if (dRotateDegree != 0) {
canvas.rotate(-fRotateDegree, fX, fY);
}
}
示例13: draw
import android.graphics.Paint; //导入方法依赖的package包/类
public void draw(Canvas canvas, double x, double y, double width, double height, Paint paint) {
drawBackground(canvas, x, y, width, height, paint, null);
float fPaintOriginalTxtSize = paint.getTextSize();
paint.setTextSize((float)(width/2));
draw1LineTextAnchorMid(canvas, mstrChartTitle, x / 2, y + mdSmallSize, paint, null, mdSmallSize, 0);
drawButtons(canvas, x, y, width, height, paint);
paint.setTextSize(fPaintOriginalTxtSize);
}
示例14: loadPages
import android.graphics.Paint; //导入方法依赖的package包/类
public static SparseArray<ArrayList<String>> loadPages(String source, Paint textPaint, int visibleHeight, int visibleWidth, int intervalSize, int paragraphSize) {
SparseArray<ArrayList<String>> pageArray = new SparseArray<>();
List<String> lines = new ArrayList<>();
if (source != null && source.length() > 0) {
String[] split = source.split("\n");
//剩余高度
int rHeight = visibleHeight + intervalSize + paragraphSize;
for (String paragraph : split) {
boolean hasContent=false;
//如果只有换行符,那么就不执行
if (StringUtils.isBlank(paragraph)) continue;
//重置段落
paragraph = StringUtils.halfToFull(" " + paragraph + "\n");
paragraph = StringUtils.trimBeforeReplace(paragraph, " ");
while (paragraph.length() > 0) {
//测量一行占用的字节数
int count = textPaint.breakText(paragraph, true, visibleWidth, null);
String subStr = paragraph.substring(0, count);
String trim = subStr.trim();
if (trim.length()>0&&!trim.equals("\n") && !trim.equals("\r\n")&&!StringUtils.isBlank(trim)) {
//重置剩余距离
rHeight -= (textPaint.getTextSize() + intervalSize);
//达到行数要求,创建Page
if (rHeight < 0) {
//创建Page
pageArray.put(pageArray.size(), new ArrayList<>(lines));
//重置Lines
lines.clear();
rHeight = visibleHeight;
continue;
}
//将一行字节,存储到lines中
lines.add(subStr);
hasContent=true;
}
//裁剪
paragraph = paragraph.substring(count);
}
if (lines.size() > 0&&hasContent) {
rHeight -= paragraphSize;
}
}
if (lines.size() != 0) {
pageArray.put(pageArray.size(), new ArrayList<>(lines));
//重置Lines
lines.clear();
}
}
return pageArray;
}
示例15: getSize
import android.graphics.Paint; //导入方法依赖的package包/类
@Override
public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
int width = (int) paint.measureText(mTableLinkText, 0, mTableLinkText.length());
mTextSize = paint.getTextSize();
return width;
}