簡単に拡大縮小できる(ベクトルのような)いくつかの図面を実行する拡張ビューでいくつかのコードを設定しています。(私のスケールは0-1.0として設定されています)
ペイントの塗りつぶしをFILLに設定すると、パスに描画されたテキストは正しく表示されますが、塗りつぶしをストロークに設定すると(テキストの輪郭だけが必要です)、画像はLSDトリップのように見えます。これが私のサンプルコードです:
Paint yellowPaint = Paints.getFillTextPaint(0.01f, 0xFFffea3e, 0.065f);
canvas.drawTextOnPath(mContext.getString(R.string.building_a_partnership),
Paths.getRoundedTextPath(mOuterCircleRectF, 280f, 350f),
0, -0.025f, yellowPaint);
public static Paint getFillTextPaint(float f, int color, float textSize) {
Paint textPaint = new Paint();
textPaint.setFlags(Paint.ANTI_ALIAS_FLAG);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setColor(color);
textPaint.setTextSize(textSize);
textPaint.setStrokeWidth(f);
textPaint.setShadowLayer(0.002f, 0.0f, 0.0f, 0xFF000000);
textPaint.setTypeface(Typeface.SANS_SERIF);
return textPaint;
}
Paint.StyleをFILLからSTROKEに変更すると、以下の画像が表示されます。私はcanvas.drawText()を使用しましたが、ストロークされた文字を表示すると正常に機能します。それがパスに適用されたときだけ、それがすべて奇妙に見えるときです。