2015-03-20 3 views
0

Я не могу понять, почему, несмотря на упоминание кодировки utf-8 в коде string.xml, «ddd» не закодирован до требуемого шрифта (DevLys 180, шрифт Hindi) ,Использование шрифтов Hindi в Android

Я скопировал этот код из Интернета, чтобы получить хинди работать в моем приложении:

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> 

деятельность_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

Когда вы устанавливаете шрифт в коде через setTypeface, возможно, вам не нужно устанавливать параметр fontFamily в xml. частности:

android:fontFamily="@string/font" 

Вы можете попробовать удалить это.

Кроме того, убедитесь, что вы размещаете шрифты в папке с ресурсами/шрифтами. Вы можете разархивировать APK, чтобы убедиться в этом.

AKAIK: Нет прямого способа указать пользовательские упакованные шрифты в XML. Это должно быть сделано с помощью кода.

Что я обычно делаю, это сделать производный класс TextView и использовать его вместо xml. В конструкторе этого нового класса вы установите шрифт из кода.

+0

У меня есть копия, вставленная в файл ttf в папке font.its: app/src/main/assets/font.have удален код fontfamily. Вы видите другую причину отказа в доставке хинди? – VKothari

+0

1) Сохранение активов/шрифтов не гарантирует, что оно будет упаковано в APK. Конфигурация сборки может не знать об этом. Просто попробуйте разархивировать созданный файл APK и посмотреть, есть ли у вас там шрифт? (сжатый) 2) Убедитесь, что файл шрифта является нормальным. Попробуйте открыть файл на компьютере с Windows, может быть? – sushantsha

+0

Преобразовал файл .iml в .rar, но не смог извлечь его впоследствии. Нет файла .apk. Можете ли вы посоветовать немного дальше. Спасибо – VKothari