Я намагався використовувати спеціальний шрифт в Android Studio, як ми це робили в Eclipse. Але, на жаль, не вдалося розібратися, куди помістити папку "активи"!
Я намагався використовувати спеціальний шрифт в Android Studio, як ми це робили в Eclipse. Але, на жаль, не вдалося розібратися, куди помістити папку "активи"!
Відповіді:
Оновлення 2020:
Створіть папку з назвою шрифту всередині папки res та скопіюйте свій шрифт
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Для програмного використання:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Виберіть Файл> Створити> Папка> Активація папки
Клацніть закінчити
Клацніть правою кнопкою миші на активах та створіть папку під назвою шрифти
Помістіть файл шрифту в активи > шрифти
Використовуйте код нижче, щоб змінити шрифт textView
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Існує багато способів встановити власну сімейство шрифтів у полі, і я використовую ось такий нижче.
Щоб додати шрифти як ресурси, виконайте такі дії в студії Android:
1) Клацніть правою кнопкою миші папку res та перейдіть до Нового> Каталог ресурсів Android. З'явиться вікно Новий каталог ресурсів.
2) У списку типів ресурсів виберіть шрифт та натисніть кнопку ОК.
Примітка. Ім'я каталогу ресурсів має бути шрифтом.
3) Додайте файли шрифтів у папку шрифтів.
Додайте шрифт у потрібному вигляді у свій XML-файл:
Примітка. Але для цього вам потрібні такі речі:
Android Studio вище на 3,0 канарки.
Ваша активність розширює AppCompatActivity.
Оновіть файл 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
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Я думаю, що замість завантаження .ttf-файлу ми можемо використовувати шрифти Google. Це дуже просто втілити в життя. тільки ви повинні виконати ці кроки. крок 1) Відкрийте layout.xml свого проекту та вибране сімейство шрифтів перегляду тексту в атрибутах (для знімка еталонного екрана додається)
крок 2) У сімействі шрифтів виберіть Більше шрифтів .. опція, якщо вашого шрифту немає. тоді ви побачите нове вікно, яке відкриється, там ви можете ввести потрібний шрифт та вибрати потрібний шрифт із цього списку, тобто) Regular, Bold, Italic і т. д., як показано на зображенні нижче.
крок 3) Тоді ви будете спостерігати, як папка шрифту буде автоматично генерована в папці / res, що має вибраний файл шрифтів xml.
Тоді ви можете безпосередньо використовувати це сімейство шрифтів у xml як
android:fontFamily="@font/josefin_sans_bold"
або граматично ви можете досягти цього, використовуючи
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Привіт, тут у нас є кращий спосіб застосувати шрифти на EditTexts та TextViews на android одразу та застосувати їх у всьому проекті.
Перш за все вам потрібно зробити папку шрифтів. Ось кроки.
1: Перейдіть до (папка проекту). Потім додаток> 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"
/>
З бібліотекою підтримки 26.0 (та Android O) шрифти можна легко завантажувати з ресурсу за допомогою:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Більше інформації можна знайти тут.
Я хочу додати свою відповідь для Android-O та Android Studio 2.4
Створіть папку з назвою шрифту в папці res . Завантажте різні шрифти, які ви хочете додати до прикладу проекту, шрифти Google
Всередині вашої сім'ї шрифтів користувача 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 O, ресурси шрифту в XML доступні як нова функція.
Щоб додати шрифти як ресурси, виконайте такі дії в студії Android:
1) Клацніть правою кнопкою миші папку res та перейдіть до Нового> Каталог ресурсів Android . З'явиться вікно Новий каталог ресурсів.
2) У списку типів ресурсів виберіть шрифт та натисніть кнопку ОК.
Примітка. Ім'я каталогу ресурсів має бути шрифтом.
3) Додайте файли шрифтів у папку шрифтів.
Ви можете отримати доступ до ресурсів шрифту за допомогою нового типу ресурсу, шрифту. Наприклад, для доступу до ресурсу шрифту використовуйте @ font / myfont або R.font.myfont.
напр. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Ви можете використовувати просту та просту бібліотеку сторонніх EasyFonts, щоб встановити різноманітні спеціальні шрифти для своїх TextView
. Використовуючи цю бібліотеку, вам не доведеться турбуватися про завантаження та додавання шрифтів у папку активів / шрифтів. Також про створення об'єктів Typeface. Ви також не зможете створити папку активів.
Просто:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Існує багато типів шрифтів, наданих цією бібліотекою.
1-й додайте файл 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"
/>
Щоб призначити шрифт textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
ваше ім'я_фанта включає розширення шрифту.
Якщо ви дуже новачок в 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 / file 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);
}
}
}
Зараз існує так багато способів застосувати шрифт. Один із найпростіших способів такий: 1) Клацніть правою кнопкою миші папку Res і перейдіть до Нового> Каталог ресурсів Android.
2) У списку типів ресурсу виберіть шрифт та натисніть кнопку ОК.
3) Помістіть файли шрифтів у папку шрифтів.
Додайте свої шрифти до папки активів у програмі / src / main / properties, зробіть спеціальний перегляд тексту так:
class CustomLightTextView : TextView {
constructor(context: Context) : super(context){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
attachFont(context)
}
fun attachFont(context: Context) {
this.setTypeface(FontCache.getInstance().getLightFont(context))
}
}
Додати FontCache: Так що вам не доведеться створювати шрифт знову і знову, як:
class FontCache private constructor(){
val fontMap = HashMap<String,Typeface>()
companion object {
private var mInstance : FontCache?=null
fun getInstance():FontCache = mInstance?: synchronized(this){
return mInstance?:FontCache().also { mInstance=it }
}
}
fun getLightFont(context: Context):Typeface?{
if(!fontMap.containsKey("light")){
Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf");
fontMap.put("light",Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf"))
}
return fontMap.get("light")
}
}
І ви зробили!
PSFrom android O ви можете безпосередньо додавати шрифти.
помістіть шрифти в папку ресурсів, а потім застосуйте fontfamily: '' ваші шрифти
Для нових читачів
Ви можете користуватися цією бібліотекою Gloxey Спеціальні перегляди шрифтів
залежність градуса
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Як використовувати?
Створення ресурсів папок -> шрифти . Скопіюйте свої шрифти в папку шрифтів .
Використовуйте додаток властивості : 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" />