当我想使用canvas.scale()放大我的自定义视图文本时,文本变得模糊,如下所示:
@override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.translate(50,50 );
canvas.scale(mDpi/72, mDpi/72);
canvas.drawText("Stackoverflow!", 50, 50, mPaint);
}
mDpi是320,当它在手机中运行时,它很模糊;但是,当代码在nexus 10中运行时,它是正常的!有人可以告诉我为什么?
答案 0 :(得分:6)
我有解决方案!
private void closeHardwareAcceleration() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setLayerType(LAYER_TYPE_SOFTWARE, null);
}
}
因为在api 11之后,使用HardwareAcceleration绘制视图,只需关闭它!