Android 在API中使用XML字体<;26
Android API 26支持这一点,但我们是否有一个支持库,可以提供字体作为资源在res中的使用?[font in XML]如果是,支持哪种APIAndroid 在API中使用XML字体<;26,android,fonts,Android,Fonts,Android API 26支持这一点,但我们是否有一个支持库,可以提供字体作为资源在res中的使用?[font in XML]如果是,支持哪种API 我说的是AndroidOSDK特性,它允许我们按照上面的链接设置XML字体。我敢肯定,这不是MM的固有特性 下面是一个例子,min sdk support 18(应用程序内) 根据谷歌的说法,只要满足以下条件,Android 4.0+(API 14+)就支持该功能: 您正在使用支持库版本26.0.0-beta1或更高版本 您正在使用AppCom
我说的是AndroidOSDK特性,它允许我们按照上面的链接设置XML字体。我敢肯定,这不是MM的固有特性 下面是一个例子,min sdk support 18(应用程序内)
根据谷歌的说法,只要满足以下条件,Android 4.0+(API 14+)就支持该功能:
- 您正在使用支持库版本26.0.0-beta1或更高版本
- 您正在使用AppCompat
应用程序小部件的唯一替代方法是使用ImageView而不是TextView,并使用RemoteView方法,如setImageViewUri(…)和setImageViewBitmap(…),这两个都有问题。要在
API
上支持低于26的字体系列,我们需要使用
<font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
而不是
<font android:fontStyle="normal" android:fontWeight="400" android:font="@font/myfont-Regular"/>
一些用户将登陆此页面,从xml搜索应用程序中使用自定义字体的说明。我是这样做的: 默认情况下,字体资源目录不存在。您可以按照[太多工作]手动创建它 或使用GUI中的字体选择器-
- 在“设计”选项卡中选择文本视图
- 打开
xml属性的下拉列表fontFamily
- 向下滚动至“更多字体”
- 从出现的弹出窗口中选择“可下载字体”
<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>
@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@字体/myfont
[前缀fontFamily withandroid:
如果上述操作不起作用]
截图:
注意:此回答假设您使用的是Android Studio 3+和支持库版本26+要完成Yuri的回答,字体支持返回API 16。 要创建字体系列(其中指定了不同的字体权重),应在/res/font/下创建
my\u font\u family.xml
,如下所示:
要在TextView
xml中使用此选项,您应该使用app:fontfamine=“@font/my\u font\u family”
,注意app:
而不是android:
要选择特定的fontwweight
,您可以使用android:textFontWeight=“200”
,但它仅适用于API>=28。要根据API 28之前的权重选择不同的字体,您有两个选项。您可以使用android:textStyle=“bold”
仅指定“普通/斜体/粗体”,但不是确切的重量。或者您可以直接使用如下字体的特定重量:app:fontfamine=“@font/myfont\u semi\u bold”
请注意:如果您在应用程序中使用自定义textview,
YourTextView
,它必须扩展AppCompatTextView
,而不仅仅是android.widget.textview,我正在我的一个应用程序中使用此功能,它支持API 9到API 18。据我所知没有限制。我不再支持API8了,但我想它也可以使用。您向gradle添加了哪个库?没有。这是本地特色。顺便说一句,Eclipse不需要所有的“渐变元素”;)我想我被误解了。我说的是O中引入的“XML中的字体”功能。通过一些小技巧,编辑问题以澄清土生土长的人。为什么其他人说这是本地特色?我正在使用SDK Android Studio 2.3.2。我试过使用@font/arial.ttf。它不起作用。我使用的是支持库版本25.3.1。现在我知道是怎么回事了,这有用吗?有些人说你必须升级到Android Studio 3才能工作。谢谢你的提示。我把我的手机换成了,现在可以用了。谢谢。这应标记为正确答案。您是否尝试了textFontWeight
?因为即使在API28上,它对我也不起作用。它对我不起作用,我在模拟器中运行。我正在使用实现“androidx.appcompat:appcompat:1.0.2”和MaterialComponentstheme@GaneshChowdharySadanala请检查添加的注释,这可能会对您有所帮助。textStyle解决方案在支持库的Android 5上不起作用是否可以包含较旧的API?
<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>