1

テキストにカスタムフォントを追加しようとしていますが、問題は、テキストが縦縞で表示されることです。それらはフォントに含まれておらず、問題は一部のAndroidデバイスでのみ発生するようです。

これは私のTextViewです

<TextView
    android:id="@+id/header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_marginTop="4dip"
    android:layout_marginBottom="4dip"
    android:textColor="#00fff0"
    android:textSize="14sp"
    android:text="Header"/>

onCreate()関数で次のように書体を設定します

((TextView) findViewById(R.id.header)).setTypeface(Typeface.createFromAsset(this.getAssets(), "bitbold2.ttf"));

次のように初期化すると、キャンバスにテキストを描画するときにも同じ問題が発生します。

Typeface bitNanoFont = Typeface.createFromAsset(asset, "bitbold2.ttf");
Paint textPaint = new Paint();
textPaint.setARGB(255, 0, 255, 240);
textPaint.setTextSize(24);
textPaint.setTypeface(bitNanoFont);

そしてこのように描かれます:

canvas.drawText("Text", 320, 50, textPaint);

結果のテキストは次のようになります(TextView):

テキストは次のようになります。

この画像はアプリケーションから直接取得されているため、画像は上に拡大縮小され、背景はカラフルです。

4

1 に答える 1

0

これは完全な解決策ではありませんが、テキストに偽の太字を適用することで縦方向のギャップを修正できました。これは、Android が文字に余分なストロークを追加し、ギャップを越えて描画することを意味します。

TextView で

Typeface font = Typeface.createFromAsset(asset, "bitbold2.ttf");
TextView tw = (TextView) findViewById(R.id.header);
tw.setTypeface(font);
tw.setPaintFlags(Paint.FAKE_BOLD_TEXT_FLAG);

そしてキャンバス上

Typeface font = Typeface.createFromAsset(asset, "bitbold2.ttf");
Paint paint = new Paint();
paint.setTypeface(font);
paint.setFakeBoldText(true);
于 2013-01-06T10:42:06.433 に答える