Как использовать пользовательский шрифт в проекте, написанном в Android Studio



Я пытался использовать пользовательский шрифт в Android Studio, как мы делали в Eclipse. Но, к сожалению, не удалось выяснить, куда поместить папку "активы"!

1006   15  

15 ответов:

вот шаги, чтобы решить это:

  1. перейдите в папку (project folder)
  2. затем app>src>main
  3. создать папку активы>шрифты' на main.
  4. положить .ttf-файл в папку шрифты.

        AssetManager am = context.getApplicationContext().getAssets();
    
        typeface = Typeface.createFromAsset(am,
                String.format(Locale.US, "fonts/%s", "abc.ttf"));
    
        setTypeface(typeface);
    

    или попробуйте так:

       TextView tx = (TextView)findViewById(R.id.textview1);
    
       Typeface custom_font = Typeface.createFromAsset(getAssets(),  "fonts/abc.ttf");
    
       tx.setTypeface(custom_font);
    

/images/content/27588965/9c7d44c3d932e9023e9cd57a4f79e342.png

  1. Выберите Файл>Создать > Папка > Папка Активов

  2. клик готово

  3. Правой Кнопкой Мыши на активы и создать папку под названием шрифты

  4. положить файл шрифта в активы>шрифты

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

    TextView textView = (TextView) findViewById(R.id.textView);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
    textView.setTypeface(typeface);
    

есть много способов установить пользовательское семейство шрифтов на поле, и я использую это ниже.

чтобы добавить шрифты в качестве ресурсов, выполните следующие действия в Android Studio:

1) Щелкните правой кнопкой мыши папку res и перейдите в новый > каталог ресурсов Android. Откроется окно новый каталог ресурсов.

2) в списке тип ресурса, выберите шрифт и нажмите кнопку ОК.

Примечание: имя каталога ресурсов должно быть шрифтом.

3) Добавьте файлы шрифтов в папку шрифтов. enter image description here

добавить шрифт в нужный вид в XML-файл:

enter image description here

Примечание: но вы требовали следующие вещи для этого:

  1. Android Studio выше до 3.0 канарейки.

  2. Ваша активность расширяет AppCompatActivity.

  3. Обновить файл gradle следующим образом:

    compileSdkVersion Двадцать шесть buildToolsVersion " 26.0.1" defaultConfig {
    minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName " 1.0" testInstrumentationRunner " android.поддержка.тест.бегун.AndroidJUnitRunner" }

    • buildtoolsVersion выше до 26 и минимальная targetSdkVersion требуется 26
  4. добавить зависимостей в build.файл gradle:

    classpath - com.андроид.инструменты.сборка: gradle: 3.0.0-beta4'

  5. gradle-обертка.свойства:

    distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip

Привет здесь у нас есть лучший способ применить шрифты на EditTexts и TextViews на android сразу и применить его во всем проекте.

прежде всего, вам нужно сделать папку шрифтов. Вот несколько шагов.

1: Перейдите в папку (project), затем app>src>main

2: Создайте папки с именем "активы / шрифты" в главной папке.

3: Поместите ваши шрифты в папку шрифтов. Вот У Меня ' MavenPro-Regular.ttf'

вот шаги для применения пользовательские шрифты на EditText и с помощью этого подхода вы можете применять шрифты на каждом входе.

1: Создайте класс MyEditText (ваше предпочтительное имя ...)

2: который расширяет EditText

3: применить шрифт

вот пример кода;

public class MyEditText extends EditText {

    public MyEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public MyEditText(Context context) {
        super(context);
        init();
    }

    private void init() {
        if (!isInEditMode()) {
            Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/MavenPro-Regular.ttf");
            setTypeface(tf);
        }
    }

}

и вот код, как его использовать.

MyEditText editText = (MyEditText) findViewById(R.id.editText);

editText.setText("Hello");

или в вашем xml-файле

   <MyEditText
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:textColor="#fff"
    android:textSize="16dp"
    android:id="@+id/editText"
    />

Я думаю вместо загрузки .ttf файл мы можем использовать шрифты Google. Это очень легко реализовать. только вы должны выполнить следующие действия. Шаг 1) открытая планировка.xml вашего проекта и выберите семейство шрифтов текстового представления в атрибутах (для справки прилагается снимок экрана) enter image description here

Шаг 2) в семействе шрифтов выберите больше шрифтов.. вариант, если ваш шрифт не существует. затем вы увидите новое окно откроется, там вы можете ввести ваш необходимый шрифт и выберите нужный шрифт из этого списка, т. е. обычный, полужирный, курсив и т. д.. как показано на рисунке ниже. enter image description here

Шаг 3) затем вы увидите, что папка шрифтов будет автоматически сгенерирована в папке / res, имеющей выбранный XML-файл шрифтов.

enter image description here

тогда вы можете напрямую использовать это семейство шрифтов в xml как

      android:fontFamily="@font/josefin_sans_bold"

или pro грамматически вы можете достичь этого с помощью

  Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
  fontText.setTypeface(typeface);

Вы можете использовать easy & simple EasyFonts сторонняя библиотека для установки различных пользовательских шрифтов для вашего TextView. С помощью этой библиотеки вам не придется беспокоиться о загрузке и добавлении шрифтов в папку assets/fonts. Также о создании объекта шрифта. Вы также будете свободны от создания папки активов.

просто:

TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));

есть много типов шрифтов в библиотеке.

с библиотекой 26.0 поддержки (и Андроидом о,) шрифты можно нагрузить от ресурса легко с enter image description here

шрифт typeface= ResourcesCompat.getFont (Context context, int fontResourceId)

более подробную информацию можно найти здесь.

согласно новой функции, доступной в Android O, ресурсы шрифтов в XML доступен как новая функция.

чтобы добавить шрифты в качестве ресурсов, выполните следующие действия в Android Studio:

1) Щелкните правой кнопкой мыши res папка и перейдите к новый > каталог ресурсов Android. Откроется окно новый каталог ресурсов.

2) в списке тип ресурса, выберите шрифт, а затем нажмите кнопку ЛАДНО.

Примечание: имя каталога ресурсов должно быть шрифтом.

3) добавьте файлы шрифтов в папку шрифтов.

вы можете получить доступ к ресурсам шрифта с помощью нового типа ресурса, шрифт. Например, чтобы получить доступ к ресурсу шрифта, используйте @font/myfont или R. font.сайт myfont.

например. Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);

  1. создать активы папку в проект -> приложение (или имя приложения) -> РЦС -> основные -> правый клик -> создать -> папку.
  2. затем создайте новый каталог внутри активов под названием "шрифты".

чтобы назначить шрифт для textView:

TextView textView = (TextView) findViewById(R.id.your_textView);

final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");

your_font_name включает в себя расширение шрифта.

Я хочу добавить свой ответ для Android-O и Android Studio 2.4

  1. создать папку с именем шрифт под res. Загрузите различные шрифты, которые вы хотели добавить в свой пример проекта шрифты Google

  2. внутри вашего семейства шрифтов пользователя xml

    пример :

    <TextView
        android:fontFamily="@font/indie_flower"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="@string/sample_text" />
    

3.Если вы хотите, чтобы это было программно, используйте следующее код

Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);

для получения дополнительной информации перейдите по ссылке на мой блог стили шрифтов для Android с Android Studio 2.4

Если вы совсем новичок в Android, как я это может быть немного сложнее. Убедитесь, что вы звоните:

TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);

метод внутри метода, такого как onCreate.

Android 8.0 (API 26) представил новые функции, связанные со шрифтами.

1) шрифты могут быть использованы в качестве ресурсов.

2) загружаемые шрифты.

Если вы хотите использовать внешние шрифты в своем приложении для android, вы можете включить файлы шрифтов в apk или настроить загружаемые шрифты.

включая файлы шрифтов в APK : вы можете скачать файлы шрифтов, сохранить их в res / font filer, определить семейство шрифтов и использовать семейство шрифтов в стили.

дополнительные сведения об использовании пользовательских шрифтов в качестве ресурсов см. В разделе http://www.zoftino.com/android-using-custom-fonts

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

для получения более подробной информации о загружаемых шрифтах см. http://www.zoftino.com/downloading-fonts-android

создать assets папка затем создать fonts папка в нем.

затем вы можете установить font С assets или directory как показано ниже :

public class FontSampler extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        TextView tv = (TextView) findViewById(R.id.custom);
        Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");

        tv.setTypeface(face);

        File font = new File(Environment.getExternalStorageDirectory(), "MgOpenCosmeticaBold.ttf");

        if (font.exists()) {
            tv = (TextView) findViewById(R.id.file);
            face = Typeface.createFromFile(font);

            tv.setTypeface(face);
        } else {
            findViewById(R.id.filerow).setVisibility(View.GONE);
        }
    }
} 

для новых читателей

Вы можете использовать эту библиотеку Gloxey Пользовательские Виды Шрифтов

gradle dependency

  dependencies{
           compile 'io.gloxey.cfv:custom-font-views:1.0.2'
    }

как использовать?

создать папку активы ->шрифты. Скопируйте шрифты в шрифты.

использовать собственность app : font_name = "font_name_string" применить шрифт на вид.

пример

   <!--Font Names in srings.xml-->
       <string name="aadhunik">aadhunik.ttf</string>
       <string name="kung_fool">kungfool.ttf</string>
       <string name="skrova">skrova.otf</string>
       <string name="painting_in_the_sun_light">painting_in_the_sun_light.ttf</string>

   <!--Include views in layout.xml-->
       <io.gloxey.cfv.CFTextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:text="Aadhunik"
       android:textColor="#ff00"
       android:textSize="40sp"
       app:font_name="@string/aadhunik" />

       <io.gloxey.cfv.CFButton
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="Kung Fool"
       android:textColor="#154748"
       app:font_name="@string/kung_fool" />

       <io.gloxey.cfv.CFEditText
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center"
       android:text="Hello world"
       android:textSize="30sp"
       app:font_name="@string/skrova" />

       <io.gloxey.cfv.CFCheckBox
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:text="Painting In The Sun Light"
       android:textSize="30sp"
       app:font_name="@string/painting_in_the_sun_light" />

поскольку вы знаете, как использовать пользовательские шрифты в проектах eclipse android, я предлагаю вам взглянуть на структуру каталогов проекта android studio и найти место для папки активов.

https://developer.android.com/tools/projects/index.html

Comments

    Ничего не найдено.