我无法理解为什么,尽管在string.xml代码中提到了utf-8编码," ddd"没有被编码为所需的字体(DevLys 180,印地语字体)。
我已从互联网上复制此代码,以便让印地语在我的应用中运行:
Main.Activity java:
package com.example.spk.muni_darshan;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.titleText);
Typeface font = Typeface.createFromAsset(getAssets(),
"font/DevLys 180.ttf");
tv.setTypeface(font);
}
string.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Muni_Darshan</string>
<string name="font">font</string>
<string name="title">ddddd</string>
</resources>
activity_main.xml中:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title"
android:id="@+id/titleText"
android:textSize="@dimen/abc_action_bar_default_height_material"
android:fontFamily="@string/font" />
答案 0 :(得分:0)
当您通过setTypeface在代码中设置字体时,您可能不必在xml中设置fontFamily选项。 具体来说:
android:fontFamily="@string/font"
您可以尝试删除它。
另外,请确保将字体打包在assets / font文件夹中。您可以解压缩APK以验证。
AKAIK:没有直接的方法在XML中指定自定义打包字体。它必须通过代码完成。
我通常做的是创建TextView的派生类,并在xml中使用它。在这个新类的构造函数中,您已从代码中设置了字体。