
要打印的内容是:有文字,有图片,二维码 那么,一张视图里,有文字,有图片,二维码,绘制成一张bitmap. 跟分别绘制三张图片,文字绘制一张bitmap,图片绘制成一张bitmap,二维码一张bitmap. 相比那种打印会更清晰些,为什么?
分开绘制bitmap,跟放在一张bitmap里 ,三张组合成一张的bitmap,会比分别 绘制的bitmap会更清晰?
/**
* The Paint class holds the style and color information about how to draw
* geometries, text and bitmaps.
*/
到底是打印文字不清晰还是什么原因?文字不清晰,那么是图不清晰,就把图修清晰。
/**
* 客户反馈在使用XML文本TextView的时候不清晰。
* 打印文字。改成把XML文件里的TexView换成VectorTextView
* 直接使用纯黑字体,测试来看确实是清晰些。所以在xml的视图里使用这个文本替换TextView
*/
public class VectorTextView extends androidx.appcompat.widget.AppCompatTextView {
private Paint pathPaint;
public VectorTextView(Context context) {
super(context);
init();
}
public VectorTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public VectorTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
pathPaint = new Paint();
pathPaint.setStyle(Paint.Style.FILL);
pathPaint.setColor(Color.BLACK); // 使用纯黑
pathPaint.setHinting(Paint.HINTING_OFF); // 关闭 hinting,保证轮廓不偏移
pathPaint.setAntiAlias(true); // 可选抗锯齿,可保留细节(灰度打印机有用)
}
@Override
protected void onDraw(Canvas canvas) {
String text = getText().toString();
float x = 0;
float y = getTextSize();
Path textPath = new Path();
getPaint().getTextPath(text, 0, text.length(), x, y, textPath);
canvas.drawPath(textPath, pathPaint);
}
}原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。