Intereting Posts
Круговой индикатор выполнения Диалоговое окно или форму, где пользователь может выбрать ввод данных или отмену Фрагмент Android, возвращающийся без повторного воспроизведения / перезагрузки Фрагмент Как увеличить размер представления моего списка? Build.xml дает ошибки при компиляции эскиза обработки, который включает в себя ArduinoAdkUsb OSMdroid – ошибка: не найдено подходящего конструктора для конструктора Overlay (без аргументов) Overlay.Overlay (Context) неприменимо Spinner arrow исчезает, когда я меняю цвет фона Как открыть файл .db. Файл .db создается из формы eclipse (android) DDMS -> File explorer -> data —> data -> packagename -> database …? Установите layout_column и layout_row в GridLayout программно Наложение или скрыть панель инструментов при выборе копии / выреза Почему getActivity () блокируется во время теста JUnit, когда пользовательский ImageView вызывает startAnimation (анимация)? Сохранить состояние активности (а не только некоторые переменные) при изменении ориентации OnStart () и onStartCommand (), все еще вызываемые в версии 2.0 и выше Применить фильтр к FirebaseRecyclerAdapter Как отличить перемещение и щелчок в onTouchEvent ()?

Шрифт Hindi с уровнем API 15 (или Android 4.0.2)

У меня есть приложение для Android на основе хинди, и я использовал шрифт devangiri из SDK Android API 16 и переименован в hindi.ttf. Текст отлично отображает уровень API 16 и 17, но просто разрывается на уровне API Android 15 и ниже.

Есть ли какие-либо причины, по которым я могу исправить это, не удаляя поддержку более низких уровней API. Мой код для настройки textview:

import android.app.Activity; import android.graphics.Paint; import android.graphics.Typeface; import android.os.Bundle; import android.view.GestureDetector; import android.widget.TextView; public class Prayer extends Activity { // TextSwitcher vs; GestureDetector gestureDetector; static Tips tip = null; static StringBuilder quesString = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.prayer); TextView tv1 = (TextView) findViewById(R.id.textView1); Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/hindi.ttf"); tv1.setTypeface(tf); tv1.setText("श्री"); tv1.setPaintFlags(tv1.getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG); } } 

Макет XML:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#C5C6E1" tools:context=".Prayer" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TextView> </RelativeLayout> 

Текущий: Введите описание изображения здесь

Ожидаемое: Введите описание изображения здесь

Я столкнулся с аналогичной проблемой, когда разрабатывал приложение для хинди. Тем не менее, ошибка была решена при изменении файлов шрифтов.

Кроме того, IMHO устройство просто заменяет символы UTF-8 в тексте соответствующими символами в файлах шрифтов. В этом случае он показывает совершенно другой символ. Таким образом, проблема должна быть с файлами шрифтов.

Дайте мне свое электронное письмо, если вы хотите использовать мои файлы шрифтов.

Для поддержки хинди я поддерживал шрифт DroidSansDevanagari-Regular.ttf который был добавлен в Jellybean. Вы можете найти все Jellybean Android-шрифты в каталоге SDK в разделе:

/<Android SDK Dir>/platforms/android-16/data/fonts

Если вы все еще видите разрывы на 4.0.2, вы можете попробовать:

 tv1.setPaintFlags(tv1.getPaintFlags() | Paint.SUBPIXEL_TEXT_FLAG); 

При настройке динамического textSize используйте это:

 tv1.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelOffset(R.dimen.questionTEXT));