Проблема при использовании нестандартного шрифта - «Нельзя сделать нативный шрифт» - PullRequest
49 голосов
/ 23 сентября 2011

Я пытаюсь использовать шрифт, который я нашел в интернете, но проблема в том, что я получаю FC с "родной гарнитурой не получается".

Вот код в getView моегоListVIew:

        holder.tv_SuraName   =(TextView)convertView.findViewById(R.id.Start_Name);
        holder.tv_SuraName.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "suralist_font.ttf"));

Может кто-нибудь сказать мне, почему я могу использовать пользовательский диск?Вы можете получить его ЗДЕСЬ .. файл .ttf

Ответы [ 16 ]

48 голосов
/ 14 марта 2014

Моя проблема заключалась в неправильном размещении папки ресурсов.

При использовании Android Studio папка ресурсов должна быть внутри исходных наборов, например

SRC / главная / активы /

Нашел в этот ответ

36 голосов
/ 23 сентября 2011

Файл шрифта по какой-либо причине поврежден или не поддерживается.Вы можете положить его на SD-карту и загрузить из файла, чтобы убедиться, что это не проблема с вашими активами.

29 голосов
/ 31 мая 2013

В основном это может быть вызвано 4 причинами:

  1. Вы используете неправильное расширение
  2. Вы должны поместить шрифты в папку ресурсов, а не inside assets / fonts /
  3. Вы неправильно написали шрифты
  4. Шрифты должны быть в нижнем регистре (в моем случае решение было переименовать MyFont.ttf в myfont.ttf, странно)
21 голосов
/ 16 ноября 2012

Дважды проверьте, что расширение не в заглавных буквах, т.е. suralist_font.TTF

Шрифты часто приходят, кажется, приходят таким образом, и это может быть упущено.

9 голосов
/ 14 февраля 2013

У меня была такая же проблема, я создал свой в assets> fonts> what.ttf и получал ту же ошибку. Я добавил расширение fonts (fonts / what.ttf), и оно решало проблему в каждом случае.

 holder.tv_SuraName   =(TextView)convertView.findViewById(R.id.Start_Name);
 holder.tv_SuraName.setTypeface(Typeface.createFromAsset(mContext.getAssets(),    "fonts/suralist_font.ttf"));
2 голосов
/ 18 августа 2015

Я использую android studio, в моем случае проблема была с путем к папке с ресурсами, в Eclipse путь к папке с ресурсами - res / assets / , но в Android Studio - src / main /assets / Итак, я просто переместил файл шрифта по этому пути и, наконец, проблема решена.

2 голосов
/ 16 сентября 2014

Довольно старый поток, но я хочу добавить еще одну причину, по которой это может произойти: вы должны установить представление содержимого перед вызовом гарнитуры.См. Пример ниже

Работает ли не :

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TextView title = (TextView)findViewById(R.id.tvTitle);
        Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/whatever.ttf");
        title.setTypeface(font);

        setContentView(R.layout.main);
    }

Работает ли

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); // <-- call before typeface

        TextView title = (TextView)findViewById(R.id.tvTitle);
        Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/whatever.ttf");
        title.setTypeface(font);
    }
1 голос
/ 21 июня 2017

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

roboto_black.ttf

и при объявлении в java-файле я произнес это как:

roboto_blak.ttf

Если ваши файлы .ttf находятся в папке активов, используйте:

Typeface type_bold = Typeface.createFromAsset(getAssets(), "roboto_black.ttf");

В противном случае, если он находится в папке шрифтов, используйте:

type_bold = Typeface.createFromAsset(getAssets(), "fonts/roboto_black.ttf");

Надеюсь, это поможет!

0 голосов
/ 10 мая 2017

У меня была та же проблема, которая произошла на Android 4.0.3-4.0.4 (100% воспроизводимая на эмуляторе IceCreamSandwich mips 4.0.3).

Проблема заключалась в том, что шрифты TTF, которые у меня были, были неправильными, несмотря на то, что почти все версии Android могли загружать эти шрифты TTF.Поэтому я использовал https://cloudconvert.com/woff-to-ttf (так как у меня были также файлы woff) для создания новых шрифтов TTF, что решило мою проблему.

0 голосов
/ 22 июня 2016

Только что сделал build --> clean и он начал рендеринг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...