Android 系列 5.1使用自定义字体

263 篇文章 2 订阅
164 篇文章 0 订阅
5.1使用自定义字体


问题
Android设备上的字体范围非常小。你想要更好的东西。

在资源/字体中安装TTF或OTF版本的字体(如果需要,创建此目录)。在代码中,从“asset”创建一个字体并调用View的setTypeface()方法。你完成了!
讨论
您可以为应用程序提供一个或多个字体。我们还没有发现一个文档化的方法来安装系统范围的字体。小心巨大的字体文件,因为他们将与您的应用程序下载,增加其大小。
您的自定义字体格式应为TTF或OTF(TrueType或OpenTypeFace,一个TTF扩展名)。您需要在项目中的资源下创建fonts子目录,并在那里安装字体。
虽然可以仅使用XML引用预定义的字体,但不能使用XML引用自己的字体。这可能有一天会改变,但现在android:typeface属性的内容模型是一个只包含正常,sans,serif和monospace的XML枚举!因此,你必须使用代码。
有几个Typeface.create()方法,包括:
•create(String familyName,int style);
•create(TypeFace family,inst style);
•createFromAsset(AssetManager mgr,String path);
•createFromFile(File path);
•createFromFile(String path);
你可以看到这些应该如何工作。参数“style”就像在Java中一样,是表示字体的类中定义的几个常量之一,这里是Typeface。示例5-2中的代码使用createFromAsset()方法,因此我们不必担心字体位置。您可以使用列表中最后两个表单,使用绝对路径将多个位置共享的字体提供到/ sdcard中。在这种情况下,请记住在AndroidManifest.xml文件中请求权限以读取SD卡!
您可以使用列表中的前两个表单创建内置字体及其变体的表示形式。
我使用了来自SoftMaker Software GmbH的好的Iceberg字体。此字体受版权保护,我没有权限重新分发它,所以当您下载项目并要运行它,您将需要在assets / fonts / font-demo.ttf安装一个TrueType字体文件。注意,如果字体缺失,createFromAsset()方法将返回null;在线版本的代码提供错误处理。如果字体无效,Android将默认忽略它并使用内置字体。

在这个演示中,我们提供两个文本区域,一个使用内置衬线字体,一个使用自定义字体。它们在main.xml中定义并添加了各种属性(参见示例5-1)。

实例5-1。 XML布局与字体规范

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/PlainTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/plain"
android:textSize="36sp"
android:typeface="serif"
android:padding="10sp"
android:gravity="center"
/>
<TextView
android:id="@+id/FontView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/nicer"
android:textSize="36sp"
android:typeface="normal"
android:padding="10sp"
android:gravity="center"
/>
</LinearLayout>

例5-2显示了源代码。
实例5-2。 设置自定义字体

public class FontDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView v = (TextView) findViewById(R.id.FontView);
Typeface t = Typeface.createFromAsset(getAssets(),
"fonts/fontdemo.ttf");
v.setTypeface(t, Typeface.BOLD_ITALIC);
}
}

1.找到要使用您的字体的视图。
2.从一个Typeface类的静态create()方法创建一个Typeface对象。
3.将字体消息发送到View的setTypeface方法。
如果一切顺利,运行应用程序应该如图5-1。


图5-1。 自定义字体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值