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 に答える