canvas.drawText()
カスタムビューで関数を呼び出すと、次のような奇妙な結果が得られました:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.translate(50, 50);
mPaint.setTextSize(60);
String str = "helloworld";
float[] wids = new float[10];
mPaint.getTextWidths(str, wids);
float width = 0;
for (int j = 0; j < wids.length; j++) {
String string = String.valueOf(str.charAt(j));
canvas.drawText(string, width, 50, mPaint); //draw by characters
width = width + mPaint.measureText(string); //the start X
}
}
この:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.translate(50, 50);
mPaint.setTextSize(60);
String str = "helloworld";
canvas.drawText(str, 0, 50, mPaint); // draw by strings
}
2 つの方法の実行方法が異なるのはなぜですか? 文字ごとに描画したいのですが、カーニングが間違っています! 誰でも私を導くことができますか?