3

当我想使用 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上运行时,这是正常的!有人可以告诉我为什么吗?

4

1 回答 1

7

我有解决办法!

private void closeHardwareAcceleration() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        setLayerType(LAYER_TYPE_SOFTWARE, null);
    }
}

因为在 api 11 之后,视图是用 HardwareAcceleration 绘制的,只需关闭它!

于 2014-04-11T02:26:45.070 回答