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

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

Ответ 1

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

  1. Перейти к (папка проекта)
  2. Тогда app> src> main
  3. Создайте папку 'assets> fonts' в главной папке.
  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);
    

Ответ 2

/img/9c7d44c3d932e9023e9cd57a4f79e342.png

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

  2. Нажмите готово

  3. Щелкните правой кнопкой мыши по активам и создайте папку с именем шрифты

  4. Поместите ваш файл шрифта в assets > fonts

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

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

Ответ 3

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

Чтобы добавить шрифты в качестве ресурсов, выполните следующие действия в 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 26
    buildToolsVersion "26.0.1"
    defaultConfig {        
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

buildtoolsVersion выше 26 и минимальный targetSdkVersion требуется 26

  1. Добавьте зависимости в файл build.gradle:
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
  1. gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Ответ 4

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

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

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

enter image description here

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

      android:fontFamily="@font/josefin_sans_bold"

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

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

Ответ 5

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

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

1: перейдите в папку проекта. Затем приложение > src > main

2: Создайте папки с именем "assets/fonts" в основной папке.

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"
    />

Ответ 7

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

Просто:

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

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

Ответ 8

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

  1. Создайте папку с именем font в папке 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

Ответ 9

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

Прежде всего, вы создадите свои пользовательские шрифты в активы /.

И затем в XML

<TextView
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    fontPath="fonts/Roboto-Bold.ttf"/>

Примечание.. Это приведет к ошибке в Android Studio, поэтому определите свой шрифт по умолчанию, используя CalligraphyConfig, в своем классе Application в onCreate() метод.

@Override
public void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                            .setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
                            .setFontAttrId(R.attr.fontPath)
                            .build()
            );
    //....
}

Ответ 10

В соответствии с новой функцией, доступной в 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);

Ответ 11

  • Создайте папки в Project → app (или ваше имя приложения) → src → main → щелкните правой кнопкой мыши → New → Directory.
  • Затем создайте новый каталог внутри активов, называемый "шрифты".

Чтобы назначить шрифт textView:

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

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

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

Ответ 12

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

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

в рамках метода, такого как onCreate.

Ответ 13

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

Ответ 14

Сначала создайте папку 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);
        }
    }
} 

Ответ 15

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

Вы можете использовать эту библиотеку Gloxey Custom Font Views

gradle зависимость

  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" />

Ответ 16

Сначала добавьте файл font.ttf в папку шрифтов. Затем добавьте эту строку в метод onCreate

    Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
    mytextView.setTypeface(typeface);

А вот мой xml

            <TextView
            android:id="@+id/idtext1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="7dp"
            android:gravity="center"
            android:text="My Text"
            android:textColor="#000"
            android:textSize="10sp"
        />

Ответ 17

Теперь существует так много способов применить шрифт, один из самых простых: 1) Щелкните правой кнопкой мыши по папке res и выберите "Создать"> "Каталог ресурсов Android".

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

3) Поместите ваши файлы шрифтов в папку шрифтов.

Ответ 18

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

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