5

我正在使用以下链接中给出的谷歌可下载字体

https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html

我想使用蒙特塞拉特字体样式半粗体,但该选项在 android 中不存在

同样在下面的链接中有样式半粗体任何想法如何做到这一点

https://fonts.google.com/specimen/Montserrat

以下是添加字体系列后的我的 textview xml

 <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:fontFamily="@font/montserrat"
        android:text="@string/address"
        android:textAllCaps="false"
        android:textColor="@color/title_light_color"
        android:textSize="10sp"
        android:textStyle="bold" />
4

4 回答 4

2

你可以在这里下载所有类型的字体montserrat

https://github.com/google/fonts/tree/master/ofl/montserrat

https://github.com/google/fonts/blob/master/ofl/montserrat/Montserrat-SemiBold.ttf

添加到你的res/font文件夹中使用这个

android:fontFamily="@font/Montserrat-SemiBold"

希望能帮助到你

于 2018-01-03T06:35:40.690 回答
1

您可以在以下位置创建新字体res/font

<?xml version="1.0" encoding="utf-8"?>
<font-family
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:fontProviderAuthority="com.google.android.gms.fonts"
    app:fontProviderPackage="com.google.android.gms"
    app:fontProviderQuery="name=Montserrat&amp;weight=600"
    app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
</font-family>

weight您可以通过更改内部app:fontProviderQuery600半粗体)来指定任何支持的重量。Android Studio 会引发一个FontValidationWarning,但它仍然可以工作。

来源:适用于 Android 的 Google 字体 API 文档

于 2019-08-08T18:18:50.913 回答
0

创建一个名为的类FontCache

import android.content.Context;
import android.graphics.Typeface;
import java.util.Hashtable;

public class FontCache {
    private static Hashtable<String, Typeface> fontCache = new Hashtable<>();

    public static Typeface get(String name, Context context) {
        Typeface tf = fontCache.get(name);

        if (tf == null) {
            try {
                tf = Typeface.createFromAsset(context.getAssets(), name);
            } catch(Exception e) {
                return null;
            }

            fontCache.put(name, tf);
        }

        return tf;
    }
}

然后将以下代码行放入您的活动中:

Typeface montserratFontType = FontCache.get("fonts/montserrat.ttf", MainActivity.this);
yourTextView.setTypeface(montserratFontType);

最后,assets在您的主文件夹中创建一个文件夹,然后fonts在该文件夹中创建一个文件assets夹并放置您的montserrat.ttf文件。

于 2018-01-03T06:37:40.530 回答
0

试试这个,为安卓应用创建自定义字体样式,

首先创建assets文件夹,然后在其中创建,font然后放入您下载的字体(例如:Light.ttf) 在此处输入链接描述

然后在活动中添加这一行

Typeface mycustomface1 = Typeface.createFromAsset(context.getAssets(), "fonts/Light.ttf");

然后声明那个textview

textview.setTypeface(mycustomface1);
于 2018-01-03T08:10:46.920 回答