有时候我们需要在游戏或应用中使用指定的字体,这些字体在每部手机中不一定要.我们可以将ttf文件添加到应用中,项目的结构图如下:
图中p5.ttf是我们新增的字体文件.
以下代码是如何调用与使用字体的.本代码是 [ RB打地鼠 ]的代码片段.
- [color=#666666]public void onDraw(Canvas canvas){
- Context context = getContext();
- // 字体
- Typeface typeface = Typeface.createFromAsset(context.getAssets(),"fonts/p5.ttf");
- typefacePaint = new Paint();
- typefacePaint.setTypeface(typeface); // 设置Paint的字体
- typefacePaint.setAntiAlias(true);
- typefacePaint.setTextSize(px2pxByHVGA(context, 18)); // 根据不同分辨率设置字体大小
- canvas.drawText("Score : 10000" ,100,100,typefacePaint); // 画Canvas时,使用设置好字体的Paint
- }
- public static float px2pxByHVGA(Context context, float pxValue) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return ((pxValue + 0.5f) * scale + 0.5f);
- }[/color]
复制代码以上代码中有分辨率的问题 dp与px的转换可以参考我另一篇帖子 [Android中dip(dp)与px之间单位转换]
以下是效果图:
还要,该字体文件是经过裁剪的.使用工具是 FontCreator 6.0. 原理就是将ttf字体没有用到的所有中文字全部删除掉,留下有一些用的中文字,英文字和特殊字体.裁剪前的字体文件大小为4MB左右,裁剪后大约只有100KB不到.所以这工作还是非常重要的.
以下是字体裁剪后的字体文件:
FontCreator 6.0的使用说明可以百度一下.有些教程讲得相关详细.本人这里就不多说了.