我在我的 android 应用程序中使用自定义 .ttf 字体。我以通常的方式加载它:
myTypeface = Typeface.createFromAsset( getAssets(), "myTypeface.ttf");
然后我在我的活动中分配我的字体......非常简单的东西:
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setTextSize(12);
tv.setTypeface(App.myTypeface);
我遇到的问题是在某些使用更高版本的 API 的设备上(我在华硕 Transformer 的模拟器中特别注意到它),文本看起来稍微粗一点,宽度不太均匀,垂直对齐更混乱。最后一部分我的意思是一些字符垂直放置比其他字符高或低一些,给文本带来一点过山车的感觉。
考虑下面的屏幕截图
这是在模拟器上呈现的文本,其分辨率和 dpi 与 Transformer 相同,但使用的是 Google API 级别 8。
看起来很标准,对吧?
现在考虑在具有相同分辨率和 dpi 但使用 Google API 级别 15 的模拟器中呈现的文本:
起初,文本可能看起来很相似,但您可能会注意到它看起来有点粗体。但是,请看“quick”中的“c”。你会注意到它比第一个渲染中的“c”更低,更高。您还会注意到,如果您查看单词“quick”中字符的底部,它们并没有在底部对齐。
这些问题可能看起来很小,但在有大量文字的屏幕上,它开始显得非常不专业。
有人看到这个,或者有解释吗?我想让文本在以后的 API 中看起来统一。
非常感谢您的宝贵时间!