在XML API中使用字体<26
https://developer.android.com/preview/features/working-with-fonts.html在XML API中使用字体<26
的Android API 26支持这一点,但我们有一个支持库,可以提供使用的字体作为资源的资源? [XML中的字体]如果是,则支持哪些API?
我说的是Android O SDK功能,它允许我们按照上面的链接给出的XML设置字体。这当然不是MM中的本地功能。
据谷歌它被支撑在的Android 4.0+只要满足这些条件(API 14+) :
- 您正在使用支持库版本26.0.0-β1或更高版本
- 您正在使用程序兼容性
来源:
Fonts in XML - Using the support library
Support Library revision history
我希望我能在应用小部件上的Android版本早于8使用这个(API 26) ,但这是不可能的,因为AppCompatTextView不能在应用程序小部件中使用。 Android O的“XML中的字体”(如Caligraphy库)的第三方替代品都不能在应用程序窗口小部件中使用。
为应用小部件唯一的替代方法是使用ImageView的代替TextView的并使用RemoteViews方法如setImageViewUri(...)和setImageViewBitmap(...),两者的这是有问题的。
谢谢。为什么其他人说它是一个本地功能?我使用SDK Android Studio 2.3.2。我尝试使用@ font/arial.ttf。它没有工作。我正在使用支持库版本25.3.1。现在我知道什么是错的。 – sziraqui
做了这项工作?有些人说你必须升级到Android Studio 3才能正常工作。 – user1506104
感谢您的指针。我将我的
对于API
鉴于超过26下需要使用app:fontFamily="@font/custom_font_from_resource"
代替android:font
与支持的lib工作26+
有些用户会登陆到这个搜索页面上的指示,在您的应用程序中使用自定义字体从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" />
如果您想使用整个应用程序相同的字体,你可以设置fontFamily中的AppTheme在styles.xml:
<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中有android:
如果以上没有工作]
截图:
注:这个答案假定您使用过Android Studio 3 +和支持库版本26+
我在其中一个应用程序中使用了此功能,它支持从API 18到API 18的功能。据我所知,没有限制。我停止支持API 8,但我想它也可以与它一起工作。 –
你已经添加到gradle的库? – sziraqui
NONE。这是一个本地功能。顺便说一下,Eclipse并不需要所有的“Gradle事物”;) –