相关疑难解决方法(0)

Android中的自定义字体在不同的API中呈现不同的方式

我在我的Android应用程序中使用自定义.ttf字体.我按照通常的方式加载它:

myTypeface = Typeface.createFromAsset( getAssets(), "myTypeface.ttf");
Run Code Online (Sandbox Code Playgroud)

然后我在我的活动中分配我的字体...非常简单的东西:

TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setTextSize(12);
tv.setTypeface(App.myTypeface);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在某些使用后期API的设备上(我在Asus Transformer的模拟器中特别注意到它),文本看起来更粗,宽度更均匀,垂直对齐更混乱.在最后一部分,我的意思是某些角色垂直放置得比其他角色更高或更低,给文本带来一点过山车般的感觉.

考虑下面的屏幕截图

这是在仿真器上呈现的文本,具有与Transformer相同的分辨率和dpi,但使用的是Google API等级8.

i45.tinypic.com/142toud.png

看起来很标准,对吗?

现在考虑在具有相同分辨率和dpi的模拟器中呈现的文本,但使用Google API等级15:

i47.tinypic.com/24zhekn.png

起初,文本可能看起来很相似,但您可能会注意到它看起来有点大胆.但是,请查看"快速"中的"c".您会注意到它比第一次渲染中的"c"更低,并且更高.您还会注意到,如果您查看单词"quick"中字符的底部,它们不会在底部对齐.

这些问题可能看起来很小,但在有大量文字的屏幕上,它看起来真的很不专业.

有人看过这个,还是有解释?我希望在以后的API中使文本看起来统一.

非常感谢你的时间!

api fonts android rendering typeface

30
推荐指数
1
解决办法
7772
查看次数

标签 统计

android ×1

api ×1

fonts ×1

rendering ×1

typeface ×1