我正在尝试在文本中添加自定义字体,但问题是文本上面会出现垂直条纹。它们不是字体,问题似乎只出现在某些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):
图片已向上缩放,背景色彩鲜艳,因为此图片是直接从应用程序中拍摄的。
答案 0 :(得分: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);
和Canvas
Typeface font = Typeface.createFromAsset(asset, "bitbold2.ttf");
Paint paint = new Paint();
paint.setTypeface(font);
paint.setFakeBoldText(true);