在Android中使用印地语字体

时间:2015-03-20 11:33:21

标签: java android xml hindi

我无法理解为什么,尽管在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" />

1 个答案:

答案 0 :(得分:0)

当您通过setTypeface在代码中设置字体时,您可能不必在xml中设置fontFamily选项。 具体来说:

android:fontFamily="@string/font"

您可以尝试删除它。

另外,请确保将字体打包在assets / font文件夹中。您可以解压缩APK以验证。

AKAIK:没有直接的方法在XML中指定自定义打包字体。它必须通过代码完成。

我通常做的是创建TextView的派生类,并在xml中使用它。在这个新类的构造函数中,您已从代码中设置了字体。