【发布时间】:2015-01-04 10:12:28
【问题描述】:
在Bitmap上绘制文字
public Bitmap textAsBitmap(String text, float textSize, int textColor) {
m_paint.setTextSize(textSize);
m_paint.setColor(textColor);
m_paint.setTextAlign(Paint.Align.LEFT);
int width = (int) ( m_paint.measureText(text) + 0.5f); // round
float baseline = (int) (- m_paint.ascent() + 0.5f); // ascent() is negative
int height = (int) (baseline + m_paint.descent() + 0.5f);
final Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
canvas1.setBitmap(image);
canvas1.drawText(text, 0, baseline, m_paint);
return image;
}
第 2 步 - 绘制画布
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
if (CustomTextview.GetDB().size() != 0) {
for (CustomTextview textview : CustomTextview.GetDB()) {
scale = textview.GETSCALE();
final Bitmap bitmap= textAsBitmap(textview.text,textview.size*scale,textview.color);
if (bitmap!=null)
canvas.drawBitmap(bitmap, textview.X, textview.Y, textview.paint);
}
}
canvas.restore();
}
我正在使用缩放监听器来缩放位图。但是一旦缩放,它会在 5 到 10 分钟后挂起..
【问题讨论】:
-
什么是“位图 b= Bitmap.createBitmap(image);”为了?而不是“b”,只需使用“image”
-
这不起作用。使用直接画布时背景会产生模糊效果
-
@pskink 现在检查问题。我已编辑..
-
textAsBitmap 是干什么用的?为什么不使用 Canvas api 绘制文本?
-
你可以在没有位图画布的情况下绘制文本吗?
标签: android canvas bitmap draw