https://developer.android.com/preview/features/working-with-fonts.html
Android API 26支持此功能,但是我们是否有支持库可以将字体用作res中的资源? [font in XML]如果是,那么它支持哪种API?
我在谈论Android O SDK功能,它允许我们在上面的链接中给出XML格式。这不是MM中的原生功能我敢肯定。
答案 0 :(得分:27)
据Google称,只要满足以下条件, Android 4.0+(API 14 +)就支持
来源:
Fonts in XML - Using the support library
Support Library revision history
我希望我可以在早于8的Android版本(API 26)的app小部件中使用它,但是这是不可能的,因为AppCompatTextView不能在app小部件中使用。在XML'中没有第三方替代Android O'字体。例如Caligraphy库在app小部件中工作。
app小部件的唯一替代方法是使用 ImageView 而不是 TextView 并使用 RemoteViews 方法,例如 setImageViewUri(。 ..)和 setImageViewBitmap(...),这两个都有问题。
答案 1 :(得分:16)
要支持from django.db import migrations
def set_subject(apps, schema_editor):
Apple = apps.get_model('yourappname', 'Apple')
for a in Apple.objects.all():
a.subject = a.text
a.save()
class Migration(migrations.Migration):
dependencies = [
('yourappname', 'name of above migration file'),
]
operations = [
migrations.RunPython(set_subject),
]
低于26的字体系列,我们需要使用
API
而不是
<font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
答案 2 :(得分:10)
要完成Yuri的回答,Font支持回到API 16。
要创建字体系列(在其中指定了不同的字体粗细),应在{strong> / res / font / 下创建in the doc,以创建my_font_family.xml
:
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont_regular"/>
<font app:fontStyle="normal" app:fontWeight="600" app:font="@font/myfont_semi_bold" />
<font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont_italic" />
</font-family>
要在TextView
xml中使用它,应使用app:fontFamily="@font/my_font_family"
,请谨慎使用app:
而不是android:
。
要选择特定的fontWeight
,可以使用android:textFontWeight="200"
,但它仅适用于API> = 28。要根据API 28之前的权重选择不同的字体,您有两个选择。您可以使用android:textStyle="bold"
仅指定“正常/斜体/粗体”,而不能指定确切的重量。或者,您可以像这样直接使用特定的字体粗细:app:fontFamily="@font/myfont_semi_bold"
。
答案 3 :(得分:7)
有些用户会登陆此页面,搜索有关在xml中使用自定义字体的说明。我是这样做的:
默认情况下,字体资源目录不存在。您可以按照documentation here [太多工作]
手动创建它或使用GUI中的字体选择器 -
在“设计”选项卡中选择TextView。
打开fontFamily
xml属性的下拉列表。
向下滚动到“更多字体”。
从显示的弹出窗口中选择“可下载的字体”。
Android Studio将自动创建字体资源目录,其中包含上述文档中提到的必要声明。完成此步骤后,您可以在字体目录中复制自定义字体文件(例如myfont.ttf),并从xml中设置所需的字体,例如:
<TextView
android:fontFamily="@font/myfont"
android:id="@+id/aboutus_head_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/who_are_we" />
如果您想在整个应用中使用相同的字体,可以在styles.xml中设置fontFamily AppTheme:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- custom font for the entire app -->
<item name="fontFamily">@font/myfont</item>
</style>
[前缀fontFamily with android:
如果以上不起作用]
截图:
注意:此答案假设您使用的是Android Studio 3+并支持库版本26 +
答案 4 :(得分:2)
这是一个例子,min sdk支持18(在app中)