Где в папке res я должен поместить файл шрифта (TTF)?
Где я должен помещать файл шрифта в ресурсы Android?
Ответ 1
Вы можете создать шрифт в папке с активами (например, в файле /fonts/roboto.ttf).
Затем создайте соответствующий класс для вашего TextView:
// RobotoFont class
package com.my.font;
public class RobotoFont extends TextView {
public RobotoFont(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public RobotoFont(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RobotoFont(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Bold.ttf"));
}
else if(style == Typeface.ITALIC)
{
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Italic.ttf"));
}
else
{
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Regular.ttf"));
}
}
}
и, наконец, обновите свой макет:
//main.xml
//replace textview with package name com.my.font.RobotoFont
<com.my.font.RobotoFont
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2dip" />
Ответ 2
Использование пользовательского шрифта
Первый шаг - выбрать шрифт, который вы хотите использовать.
Вторые создайте папку "Шрифты" в вашем каталоге ресурсов и скопируйте там свой шрифт.
NB: вы можете поместить свой шрифт всюду в папку asssets, но это так, как я делаю!!
Это для настройки, теперь для кода.
Чтобы получить доступ к своему пользовательскому шрифту, вы должны использовать класс Typeface в Android SDK для создания шрифта, который может использовать Android, а затем установить любые элементы отображения, которые должны соответствующим образом использовать ваш собственный шрифт. Чтобы продемонстрировать, вы можете создать два текстовых представления на главном экране, используя стандартный шрифт Android Sans, а другой - свой собственный шрифт. Макет ниже:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/DefaultFontText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text." />
<TextView
android:id="@+id/CustomFontText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Here is some text.">
</TextView>
</LinearLayout>
Код для загрузки и установки пользовательского шрифта также прямолинейный и показан ниже.
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
}
}
вы можете увидеть результат:
Ответ 3
Не в папке res, но в любом месте в папке с ресурсами. Затем вы можете использовать статический метод createFromAsset
из Typeface
:
Ответ 4
По состоянию на Android Studio 1.5.1 вы можете:
- Щелкните правой кнопкой мыши по каталогу
app
-
New
>Folder
(это находится в нижней части списка и легко пропустить) >Assets Folder
- В большинстве случаев вы можете оставить местоположение папки по умолчанию > Нажмите "Готово"
- Переместите ваши файлы во вновь созданную папку
assets
Ответ 5
Вы можете создать папку fonts
в resources
и использовать ее непосредственно в xml, так как Android O.
Ознакомьтесь с новым Android O - функция шрифтов.