Android Studio 3.0 中的自定义字体 styles.xml
Android Studio 3.0 Custom font in styles.xml
我无法在我的样式文件中设置自定义字体。
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:textViewStyle">@style/fontTextView</item>
...
</style>
<style name="fontTextView" parent="@android:style/Widget.TextView">
<item name="android:fontFamily">@font/example</item>
</style>
</resources>
而且我仍然在我的应用程序中看到默认字体。但是当我将 fontFamily
更改为默认设置之一时,它会更改
<style name="fontTextView" parent="@android:style/Widget.TextView">
<item name="android:fontFamily">monospace</item>
</style>
如果我以编程方式设置自定义字体,它也有效。
setTypeface(ResourcesCompat.getFont(context, R.font.example));
如何让它适用于我在 styles.xml
中的自定义字体?
我将 compiltSdkVersion
设置为 26
,将 buildToolsVersion
设置为 26.0.2
。我也在使用支持库:
def supportVersion = '26.1.0'
implementation "com.android.support:appcompat-v7:$supportVersion"
我的字体系列:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="300"
app:font="@font/example_regular"/>
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="400"
app:font="@font/example_regular"/>
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="700"
app:font="@font/example_regular"/>
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="300"
app:font="@font/example_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="400"
app:font="@font/example_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="700"
app:font="@font/example_regular" />
</font-family>
我使用相同的 *ttf
文件进行测试。
好的。我解决了这个问题 - 这种行为的原因很简单......我正在扩展 Activity
而不是 AppCompatActivity
为 xml 设计使用自定义字体:
首先,您需要在资源目录中创建字体文件夹
将所有自定义字体(.ttf 文件)文件放入字体文件夹中。
然后只需在 xml design 中添加属性 fontFamily 。
像
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="40dp"
android:fontFamily="@font/semibold"/>
使用 link https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
我无法在我的样式文件中设置自定义字体。
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="android:textViewStyle">@style/fontTextView</item>
...
</style>
<style name="fontTextView" parent="@android:style/Widget.TextView">
<item name="android:fontFamily">@font/example</item>
</style>
</resources>
而且我仍然在我的应用程序中看到默认字体。但是当我将 fontFamily
更改为默认设置之一时,它会更改
<style name="fontTextView" parent="@android:style/Widget.TextView">
<item name="android:fontFamily">monospace</item>
</style>
如果我以编程方式设置自定义字体,它也有效。
setTypeface(ResourcesCompat.getFont(context, R.font.example));
如何让它适用于我在 styles.xml
中的自定义字体?
我将 compiltSdkVersion
设置为 26
,将 buildToolsVersion
设置为 26.0.2
。我也在使用支持库:
def supportVersion = '26.1.0'
implementation "com.android.support:appcompat-v7:$supportVersion"
我的字体系列:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="300"
app:font="@font/example_regular"/>
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="400"
app:font="@font/example_regular"/>
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="normal"
app:fontWeight="700"
app:font="@font/example_regular"/>
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="300"
app:font="@font/example_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="400"
app:font="@font/example_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/example_regular"
app:fontStyle="italic"
app:fontWeight="700"
app:font="@font/example_regular" />
</font-family>
我使用相同的 *ttf
文件进行测试。
好的。我解决了这个问题 - 这种行为的原因很简单......我正在扩展 Activity
而不是 AppCompatActivity
为 xml 设计使用自定义字体: 首先,您需要在资源目录中创建字体文件夹 将所有自定义字体(.ttf 文件)文件放入字体文件夹中。 然后只需在 xml design 中添加属性 fontFamily 。 像
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="40dp"
android:fontFamily="@font/semibold"/>
使用 link https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html