在android中使用外部字体
我想在我的应用程序中使用外部字体。 我曾尝试使用资产经理添加新的字体,但没有奏效。
Typeface face; face = Typeface.createFromAsset(getAssets(), "font.otf"); textview.setTypeface(face);
但没有显示文字…
plz帮助..
AFAIK,Android不支持OpenType。 改用TrueType字体。
更新:显然,OpenType现在被支持,至less有点。 它最初并不支持,所以你会想要testing你的字体在任何版本的Android应用程序将支持。
为了方便地访问我们的字体,我们需要将它与我们的应用程序捆绑在一起,以便我们的代码随后加载它。 为此,我们直接在资产中创build一个Fonts文件夹
这可能是你的.xml
<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/DefaultFontText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="30sp" android:text="Here is some text." /> <TextView android:id="@+id/CustomFontText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="Here is some text."> </TextView>
在.java类中编写下面的代码
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/BPreplay.otf"); TextView tv = (TextView) findViewById(R.id.CustomFontText); tv.setTypeface(tf);
Android不支持OTF(我不知道是从哪个SDK版本开始的,但是它确实可以在1.6版本中使用),我使用打字机的OTF字体已经有一段时间了,但是渲染速度远不及TTF版本的精确度。通过在线字体转换器)。 基准全是这个地方(一些字母比其他字体高出了2个像素),而在像HTC Wildfire这样的LDPI手机上,由于像素较大,问题被大大放大了。
我遇到了同样的问题。 我的字体不是在Android工作,但我需要它的工作。 使用字体编辑器,我将字体从我的字体复制到Android-src-2_1的FontSampler示例中。 它工作完美。
虽然我承认我的方法从知识产权的angular度来看是有问题的,但实际上我并没有使用原始字体,因为所有的字符都被replace了,并且所有对旧字体的引用也被replace了。 我曾试着“查看”这两种字体的定义方式,但是使所有的字体variables都匹配也不起作用。 所以在ned中,我使用原始字体的骨架作为新字体的模板。
Android支持otf和ttf格式,我经历了他们两个。
tv3 = (TextView)findViewById(R.id.tv1); Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF"); tv3.setTypeface(typeFace);
这是我用于英语和当地语言的一步
您可以使用简单的EasyFonts第三方库来为您的TextView
设置各种自定义字体。 通过使用这个库,您不必担心下载并将字体添加到assets / fonts文件夹中。 还有关于字体对象的创build。
它提供了以下字体。
- 的Roboto
- Droid Serif
- 机器人机器人
- 自由
- 有趣的提升者
- Android国家
- 绿色鳄梨
- 承认
只是:
TextView myTextView = (TextView)findViewById(R.id.myTextView); myTextView.setTypeface(EasyFonts.robotoThin(this));