【发布时间】:2017-08-18 05:06:44
【问题描述】:
您好,我正在学习如何为 android 应用程序创建库。我从自定义textview 开始并在其上设置自定义字体。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>
这里我想取fontFamily这种格式@font/font_name的值。开发者需要在res 文件夹中创建字体文件夹并将字体放在那里。我需要为此做些什么。?提前致谢。
我使用以下方法创建了自定义属性。
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Typekitable">
<attr name="fontFamily" format="string" />
</declare-styleable>
</resources>
【问题讨论】:
-
您不能创建自己的资源类型,例如
font。不过,您可以将字体文件放在assets/中,并将属性保留为string,或者可能将它们放在raw/中,并将属性设置为integer。 -
@MikeM。是的,我同意我们不能。我没有在应用程序中这样做。我正在创建一个库,并希望允许开发人员使用这种方法在 android 中的
textview上设置自定义字体。 -
您不能在
res/下放置任何不属于已定义资源类型的文件夹。 -
@MikeM。谷歌最近推出了同样的developer.android.com/preview/features/working-with-fonts.html 他们是怎么做的
-
啊,真漂亮。我还没有看到那个。无论如何,他们是如何做到的,他们定义了一种新的资源类型,现在显然可以从 Android O 开始使用。他们构建了框架,所以,你知道,他们可以添加任何他们想要的东西。但是,您无法定义自己的资源类型,因此在 O 之前不可能使用
font资源。在 O 中,我想您可以像创建任何类型的font一样创建自定义属性其他属性。
标签: android