精华内容
下载资源
问答
  • Android 自定义字体方案
    2021-05-26 09:14:25

    在应用中需要配置不同的字体,而 Android 只能在 xml 中配置系统默认提供的四种字体,需要自定义的字体都需要在 Java 代码中配置.

    Android 默认方案

    你可以通过ID查找到View,然后挨个为它们设置字体。字体放置于 assets/fonts 文件夹下面.

    Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf");

    TextView view = (TextView) findViewById(R.id.activity_main_header);

    view.setTypeface(customFont);

    改良

    如果每次都这样加载,界面就会卡顿,所以我提取出来了一个工具类.

    示例中涉及到了两个自定义的字体,用枚举实现了单例模式,将字体存储在静态变量中,避免每次都去 assets 中加载,更改之后页面就流畅了.

    public enum TypefaceUtils {

    TYPEFACE;

    private static Typeface typeface50;

    private static Typeface typeface55;

    public void set50Typeface(TextView textView) {

    if (typeface50 == null)

    typeface50 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-50S.otf");

    textView.setTypeface(typeface50);

    }

    public void set55Typeface(TextView textView) {

    if (typeface55 == null)

    typeface55 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-55S.otf");

    textView.setTypeface(typeface55);

    }

    }

    参考链接

    更多相关内容
  • 本文实例讲述了Android使用自定义字体的方法。分享给大家供大家参考,具体如下: 一、问题: 作为android初学者,在做一个游戏,游戏的标题我用的是TextView,android只提供斜体粗体,但把字体设置成楷体游戏的界面...
  • 主要介绍了Android APP使用自定义字体实现方法的相关资料,需要的朋友可以参考下
  • 1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace 2、在Android中可以引入其他字体 。 代码如下:<?xml version=”1.0″ encoding=”utf-8″?><TableLayout xmlns:Android=”...
  • 要在其他平台实现自定义字体可谓是相当的麻烦,但是在Android平台就很简单了。首先将自定义字体放到“assets”下面被实例化之后再使用,如果你的DDMS中的system/fonts/....下面有你需要的ttf文件的话,可以直接使用...

    要在其他平台实现自定义字体可谓是相当的麻烦,但是在Android平台就很简单了。

    首先将自定义字体放到“assets”下面被实例化之后再使用,如果你的DDMS中的system/fonts/....下面有你需要的ttf文件的话,

    可以直接使用下面的方法来调用

    在程序中通过如下方式实例化自定义字体:Typeface.createFromAsset(getContext().getAssets(),"fonts/samplefont.ttf");

    1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace

    2、在Android中可以引入其他字体 。<?xml version="1.0" encoding="utf-8"?>

    Android:layout_width="fill_parent"

    Android:layout_height="fill_parent" >

    Android:layout_marginRight="4px"

    Android:text="sans:"

    Android:textSize="20sp" >

    Android:id="@+id/sans"

    Android:text="Hello,World"

    Android:textSize="20sp"

    Android:typeface="sans" >

    Android:layout_marginRight="4px"

    Android:text="serif:"

    Android:textSize="20sp" >

    Android:id="@+id/serif"

    Android:text="Hello,World"

    Android:textSize="20sp"

    Android:typeface="serif" >

    Android:layout_marginRight="4px"

    Android:text="monospace:"

    Android:textSize="20sp" >

    Android:id="@+id/monospace"

    Android:text="Hello,World"

    Android:textSize="20sp"

    Android:typeface="monospace" >

    Android:layout_marginRight="4px"

    Android:text="custom:"

    Android:textSize="20sp" >

    Android:id="@+id/custom"

    Android:text="Hello,World"

    Android:textSize="20sp" >

    //得到TextView控件对象

    TextView textView =(TextView) findViewById(R.id.custom);//将字体文件保存在assets/fonts/目录下,www.jcodecraeer.com创建Typeface对象

    Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSansThai.ttf");//应用字体

    textView.setTypeface(typeFace);

    如果想对整个界面的所有控件都应用自定义字体,可以通过递归调用来完成:package arui.blog.csdn.net;

    import android.app.Activity;

    import android.graphics.Typeface;

    import android.view.View;

    import android.view.ViewGroup;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.TextView;

    public class FontManager {

    public static void changeFonts(ViewGroup root, Activity act) {

    Typeface tf = Typeface.createFromAsset(act.getAssets(),

    "fonts/xxx.ttf");

    for (int i = 0; i < root.getChildCount(); i++) {

    View v = root.getChildAt(i);

    if (v instanceof TextView) {

    ((TextView) v).setTypeface(tf);

    } else if (v instanceof Button) {

    ((Button) v).setTypeface(tf);

    } else if (v instanceof EditText) {

    ((EditText) v).setTypeface(tf);

    } else if (v instanceof ViewGroup) {

    changeFonts((ViewGroup) v, act);

    }

    }

    }

    }

    展开全文
  • Android使用自定义字体

    2021-08-18 16:36:09
    一、在assets下新建fonts文件夹,把下载的字体hwxk.ttf放到里面 二、引用 //从asset 读取字体得到AssetManager AssetManager manager = getAssets(); //根据路径得到Typeface Typeface tf = Typeface....

    一、在assets下新建fonts文件夹,把下载的字体hwxk.ttf放到里面

     二、引用

    //从asset 读取字体得到AssetManager
    AssetManager manager = getAssets();
    //根据路径得到Typeface
    Typeface tf = Typeface.createFromAsset(manager, "fonts/hwxk.ttf");
    //设置字体
    tvTitle.setTypeface(tf);

    三、字体资源链接

    https://download.csdn.net/download/Jeyden_827/21144829

    展开全文
  • android 自定义字体In this tutorial, we’ll explain how to set up android custom fonts ... 在本教程中,我们将说明如何在应用程序的TextViews和Buttons中设置android自定义字体Android自定义字体 (Androi...

    android 自定义字体

    In this tutorial, we’ll explain how to set up android custom fonts in TextViews and Buttons in our application.

    在本教程中,我们将说明如何在应用程序的TextViews和Buttons中设置android自定义字体。

    Android自定义字体 (Android Custom Fonts)

    Android SDK comes with a set of standard fonts that can be styled by using a few XML attributes. Let’s look at them.

    Android SDK附带了一组标准字体,可以使用一些XML属性来设置样式。 让我们看看它们。

    • android:fontFamily : This is used to change the default fonts of the application. We can choose the font from among the following types.

      The default fontFamily is sans-serif.
      android:fontFamily requires minimum API level as 16.

      android:fontFamily :这用于更改应用程序的默认字体。 我们可以从以下类型中选择字体。

      默认的fontFamily是sans-serif
      android:fontFamily需要的最低API级别为16。

    • android:typeface : This XML attribute won’t have any effect if the fontFamily is already used(Unless the API level is less than 15, in which case the fontFamily attribute would be ignored). normal or sans is the default type of this attribute. Following are the values acceptable.
      android typeface xml types, android custom fonts

      android:typeface :如果已经使用了fontFamily,则此XML属性将无效(除非API级别小于15,在这种情况下,fontFamily属性将被忽略)。 normal或sans是此属性的默认类型。 以下是可接受的值。
    • android:textStyle : This attribute takes in values : bold, italic and normal either individually or combined such as android:textStyle=”bold|italic”.

      android:textStyle :此属性可以单独或结合使用值: 粗体斜体和普通,例如android:textStyle=”bold|italic”

    Let’s club android:fontFamily and android:textStyle and display the different variants of a TextView.

    让我们android:textStyle android:fontFamilyandroid:textStyle并显示TextView的不同变体。

    The styles.xml which contains the different style variants is given below.

    下面给出了包含不同样式变体的styles.xml。

    <resources>
    
        <!-- Base application theme. -->
        <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>
        </style>
    
    
        <style name="Regular">
            <item name="android:fontFamily">sans-serif</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif</item>
        </style>
    
        <style name="Italic">
        <item name="android:fontFamily">sans-serif</item>
        <item name="android:textStyle">italic</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif</item>
        </style>
    
    
        <style name="Bold">
            <item name="android:fontFamily">sans-serif</item>
            <item name="android:textStyle">bold</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif</item>
        </style>
    
        <style name="BoldItalic">
            <item name="android:fontFamily">sans-serif</item>
            <item name="android:textStyle">bold|italic</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif</item>
        </style>
    
        <style name="RegularCondensed">
            <item name="android:fontFamily">sans-serif-condensed</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif-condensed</item>
        </style>
    
        <style name="ItalicCondensed">
            <item name="android:fontFamily">sans-serif-condensed</item>
            <item name="android:textStyle">italic</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif-condensed</item>
        </style>
    
    
        <style name="BoldCondensed">
            <item name="android:fontFamily">sans-serif-condensed</item>
            <item name="android:textStyle">bold</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">sans-serif-condensed</item>
        </style>
    
        <style name="Casual">
            <item name="android:fontFamily">casual</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">Casual</item>
        </style>
    
        <style name="Cursive">
            <item name="android:fontFamily">cursive</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">Cursive</item>
        </style>
    
        <style name="RegularMono">
            <item name="android:fontFamily">monospace</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">mono space</item>
        </style>
    
        <style name="ItalicMono">
            <item name="android:fontFamily">monospace</item>
            <item name="android:textStyle">italic</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">monospace</item>
        </style>
    
        <style name="BoldMono">
            <item name="android:fontFamily">monospace</item>
            <item name="android:textStyle">bold</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">monospace</item>
        </style>
    
        <style name="RegularMonoSerif">
            <item name="android:fontFamily">serif-monospace</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">serif-monospace</item>
        </style>
    
        <style name="ItalicMonoSerif">
            <item name="android:fontFamily">serif-monospace</item>
            <item name="android:textStyle">italic</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">serif-monospace</item>
        </style>
    
        <style name="BoldMonoSerif">
            <item name="android:fontFamily">serif-monospace</item>
            <item name="android:textStyle">bold</item>
            <item name="android:textSize">28sp</item>
            <item name="android:text">serif-monospace</item>
        </style>
    
    
    
    </resources>

    The activity_main.xml is given below.

    下面给出activity_main.xml。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
        xmlns:tools="https://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context="com.journaldev.customfonts.MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Regular"
             />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Italic"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Bold" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/RegularCondensed" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/ItalicCondensed"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/BoldCondensed"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Casual"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Cursive"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/RegularMono"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/ItalicMono"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/BoldMono"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/RegularMonoSerif" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/ItalicMonoSerif"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/BoldMonoSerif"
            />
    
    </LinearLayout>

    To set custom fonts on a TextView/Button/EditText object, the Typeface property is used.
    The Typeface class specifies the typeface and intrinsic style of a font.
    To set a typeface over a TextView we invoke the method setTypeface().
    Following are the Typeface constants that can be used.

    若要在TextView / Button / EditText对象上设置自定义字体,请使用Typeface属性。
    Typeface类指定字体的字体和固有样式。
    要在TextView上设置字体,我们调用方法setTypeface()。
    以下是可以使用的Typeface常量。

    • BOLD

      胆大
    • BOLD_ITALIC

      加粗斜体
    • ITALIC

      意大利文
    • NORMAL

      正常

    To set custom fonts on our Views, we first need to import the font files into our project.
    Font files generally come up in two types .ttf (True Type Font) and .otf (Open Type Font).

    要在我们的视图上设置自定义字体,我们首先需要将字体文件导入到我们的项目中。
    字体文件通常以.ttf(True Type字体).otf(Open Type字体)两种类型出现。

    Android自定义字体项目结构 (Android Custom Fonts Project Structure)

    android custom fonts project

    In the above image a new folder assets has been added under the main directory.


    在上图中,新文件夹资产已添加到主目录下。

    Android自定义字体代码 (Android Custom Fonts Code)

    We’ve created another layout namely activity_custom_fonts.xml for setting custom fonts on our Views.

    我们创建了另一个布局,即activity_custom_fonts.xml用于在视图上设置自定义字体。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
        xmlns:tools="https://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context="com.journaldev.customfonts.MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Bold"
            android:textSize="28sp"
            android:id="@+id/ambleBold"
             />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Light"
            android:textSize="28sp"
            android:id="@+id/ambleLight"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Regular"
            android:textSize="28sp"
            android:id="@+id/ambleRegular" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OpenSans Regular"
            android:textSize="28sp"
            android:id="@+id/opRegular" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OpenSans-Italic"
            android:id="@+id/opItalic"
            android:textSize="28sp"
            />
    
        <Button android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:text="Pacifico"
            android:id="@+id/pacifico"/>
    
    
    
    
    </LinearLayout>

    We’re setting our custom fonts in the java code. The MainActivity.java is given below

    我们正在Java代码中设置自定义字体。 MainActivity.java在下面给出

    public class MainActivity extends AppCompatActivity {
    
    
        TextView ambleBold, ambleLight, ambleRegular, openSansItalic, openSansRegular;
        Button btn;
    
        private String A_BOLD= "Amble-Bold.ttf";
        private String A_LIGHT="Amble-Light.ttf";
        private String A_REGULAR= "Amble-Regular.ttf";
        private String O_ITALIC= "OpenSans-Italic.ttf";
        private String O_REGULAR="OpenSans-Regular.ttf";
        private String P_REGULAR="Pacifico.ttf";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_custom_fonts);
    
            ambleBold=(TextView)findViewById(R.id.ambleBold);
            ambleLight=(TextView)findViewById(R.id.ambleLight);
            ambleRegular=(TextView)findViewById(R.id.ambleRegular);
            openSansRegular=(TextView)findViewById(R.id.opRegular);
            openSansItalic=(TextView)findViewById(R.id.opItalic);
            btn=(Button)findViewById(R.id.pacifico);
    
            ambleBold.setTypeface(Typeface.createFromAsset(getAssets(), A_BOLD));
            ambleLight.setTypeface(Typeface.createFromAsset(getAssets(), A_LIGHT));
            ambleRegular.setTypeface(Typeface.createFromAsset(getAssets(), A_REGULAR));
            openSansRegular.setTypeface(Typeface.createFromAsset(getAssets(), O_REGULAR));
            openSansItalic.setTypeface(Typeface.createFromAsset(getAssets(), O_ITALIC));
            btn.setTypeface(Typeface.createFromAsset(getAssets(), P_REGULAR));
    
    
        }
    }

    In the above code we’re calling createFromAsset() method on the Typeface class to create a new instance of the Typeface. An instance of the application’s AssetManager is called by passing getAssets() as the first parameter. The custom font asset file path is passed as a string in the second parameter. Since we’ve placed the font files in the root of assets directory, passing the font filenames would suffice.

    在上面的代码中,我们在Typeface类上调用createFromAsset()方法来创建Typeface的新实例。 通过将getAssets()作为第一个参数来调用应用程序AssetManager的实例。 自定义字体资产文件路径在第二个参数中作为字符串传递。 由于我们已将字体文件放置在资产目录的根目录中,因此传递字体文件名就足够了。

    Note: Setting external fonts using android:typeface doesn’t work

    注意 :使用android:typeface设置外部字体无效

    We end up with the following output when the application is run.

    运行该应用程序时,我们得到以下输出。

    Isn’t it a time consuming and redundant task to set the typeface individually for each of the views?
    We need a better alternative. Our answer lies in Custom Views. In the next section, we’ll be creating a Custom TextView class and define custom XML attributes to set the external fonts in the XML layout itself.

    为每个视图分别设置字体是一项耗时且冗长的工作吗?
    我们需要更好的选择。 我们的答案在于自定义视图 。 在下一节中,我们将创建一个Custom TextView类并定义自定义XML属性,以在XML布局本身中设置外部字体。

    Our Updated Project Structure is given below

    android custom fonts project structure

    我们更新的项目结构如下

    Before we implement our CustomTextView.java, let’s look into the TypeFactory.java class as shown below.

    在实现CustomTextView.java之前,让我们研究一下TypeFactory.java类,如下所示。

    public class TypeFactory {
    
        private String A_BOLD= "Amble-Bold.ttf";
        private String A_LIGHT="Amble-Light.ttf";
        private String A_REGULAR= "Amble-Regular.ttf";
        private String O_ITALIC= "OpenSans-Italic.ttf";
        private String O_REGULAR="OpenSans-Regular.ttf";
    
        Typeface ambleBold;
        Typeface ambleLight;
        Typeface ambleRegular;
        Typeface openSansItalic;
        Typeface openSansRegular;
    
        public TypeFactory(Context context){
            ambleBold = Typeface.createFromAsset(context.getAssets(),A_BOLD);
            ambleLight = Typeface.createFromAsset(context.getAssets(),A_LIGHT);
            ambleRegular = Typeface.createFromAsset(context.getAssets(),A_REGULAR);
            openSansItalic = Typeface.createFromAsset(context.getAssets(),O_ITALIC);
            openSansRegular = Typeface.createFromAsset(context.getAssets(),O_REGULAR);
        }
    
    }

    The above code essentially creates a custom typeface font for each of the font files. We can now use the class variables in our CustomTextView to set the font accordingly.

    上面的代码实际上为每个字体文件创建了一个自定义字体。 现在,我们可以在CustomTextView中使用类变量来相应地设置字体。

    The CustomTextView.java class is given below.

    下面给出了CustomTextView.java类。

    public class CustomTextView extends TextView {
    
        private int typefaceType;
        private TypeFactory mFontFactory;
    
        public CustomTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
    
            applyCustomFont(context, attrs);
        }
    
        public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
    
            applyCustomFont(context, attrs);
        }
    
        public CustomTextView(Context context) {
            super(context);
        }
    
        private void applyCustomFont(Context context, AttributeSet attrs) {
    
    
            TypedArray array = context.getTheme().obtainStyledAttributes(
                    attrs,
                    R.styleable.CustomTextView,
                    0, 0);
            try {
                typefaceType = array.getInteger(R.styleable.CustomTextView_font_name, 0);
            } finally {
                array.recycle();
            }
            if (!isInEditMode()) {
                setTypeface(getTypeFace(typefaceType));
            }
    
        }
    
        public Typeface getTypeFace(int type) {
            if (mFontFactory == null)
                mFontFactory = new TypeFactory(getContext());
    
            switch (type) {
                case Constants.A_BOLD:
                    return mFontFactory.ambleBold;
    
                case Constants.A_LIGHT:
                    return mFontFactory.ambleLight;
    
                case Constants.A_REGULAR:
                    return mFontFactory.ambleRegular;
    
                case Constants.O_LIGHT:
                    return mFontFactory.openSansItalic;
    
                case Constants.O_REGULAR:
                    return mFontFactory.openSansRegular;
    
                default:
                    return mFontFactory.ambleBold;
            }
        }
    
        public interface Constants {
            int A_BOLD = 1,
                    A_LIGHT = 2,
                    A_REGULAR = 3,
                    O_LIGHT = 4,
            O_REGULAR=5;
        }
    
    
    }

    R.styleable.CustomTextView is defined inside the attrs.xml file as shown below.

    R.styleable.CustomTextView在attrs.xml文件中定义,如下所示。

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <declare-styleable name="CustomTextView">
            <attr name="font_name">
                <enum value="1" name="ambleBold"/>
                <enum value="2" name="ambleLight"/>
                <enum value="3" name="ambleRegular"/>
                <enum value="4" name="openSansItalic"/>
                <enum value="5" name="openSansRegular"/>
            </attr>
        </declare-styleable>
    
    </resources>

    The attribute font_name is the custom attribute we’ll be using in the XML layout.

    属性font_name是我们将在XML布局中使用的自定义属性。

    Our updated activity_custom_fonts.xml layout is given below:

    我们更新后的activity_custom_fonts.xml布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
        xmlns:tools="https://schemas.android.com/tools"
        xmlns:app="https://schemas.android.com/apk/res-auto"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context="com.journaldev.customfonts.MainActivity">
    
        <com.journaldev.customfonts.CustomTextView
            app:font_name="ambleBold"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Bold"
            android:textSize="28sp"
            android:id="@+id/ambleBold"
             />
    
        <com.journaldev.customfonts.CustomTextView
            app:font_name="ambleLight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Light"
            android:textSize="28sp"
            android:id="@+id/ambleLight"
            />
    
        <com.journaldev.customfonts.CustomTextView
            app:font_name="ambleRegular"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Amble Regular"
            android:textSize="28sp"
            android:id="@+id/ambleRegular" />
    
        <com.journaldev.customfonts.CustomTextView
            app:font_name="openSansRegular"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OpenSans Regular"
            android:textSize="28sp"
            android:id="@+id/opRegular" />
    
        <com.journaldev.customfonts.CustomTextView
            app:font_name="openSansItalic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OpenSans-Italic"
            android:id="@+id/opItalic"
            android:textSize="28sp"
            />
    
        <Button android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:text="Pacifico"
            android:id="@+id/pacifico"/>
    
    </LinearLayout>

    The MainActivity.java code now would just require setting the Button typeface.

    现在,MainActivity.java代码仅需要设置Button字体。

    Note: A CustomButton Custom View can be created in a similar way. Try that out!

    注意 :可以用类似的方式创建CustomButton自定义视图。 试试看!

    This brings an end to this tutorial. You can download the Android CustomFonts Tutorial from the below link.

    本教程到此结束。 您可以从下面的链接下载Android CustomFonts教程

    翻译自: https://www.journaldev.com/13291/android-custom-fonts-tutorial

    android 自定义字体

    展开全文
  • 情景:需要为整个应用替换自定义字体Android对于文字的字体设置主要是通过以下两个对象FontFamily、Typeface在XML文件中设置单个字体:android:id="@+id/tv_typeface"android:layout_width="wrap_content"android:...
  • Android自定义字体

    2021-06-03 10:04:54
    文章目的:快速入门Android中自定义各种字体!...有两种方式,第一是图片来代替文字,第二,就是今天我要教大家的自定义字体。一 自定义字体说到字体,我们不难联想到我们使用office时可以选择的各种字体,我们...
  • 业务搬砖需求需要用原设计稿给出的字体,使用@font-face引入后,发现字体包太大10M左右,每次请求服务器10M流量会造成服务器压力,影响用户体验 第一步:使用@font-face MDN概述 这是一个叫做@font-face 的CSS @规则...
  • Android 自定义字体

    2015-10-26 11:31:30
    Android自定义字体,包括几款自定义时钟字体
  • 找了很多解决方案,但是都会报错,只好边借鉴着前辈们的思路,边自己尝试改代码了QWQ前面准备:要先把使用的字体文件放入到工具中新建一个名叫assets的文件夹,然后把字体文件复制到里面,如图成功放置示意图这里我...
  • 1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace2、在Android中可以引入其他字体Android:layout_width="fill_parent"Android:layout_height="fill_parent" >Android:layout_...
  • Android更换系统默认显示的字体使用自定义字体 4、WebView加载指定字体(在获取到网页内容后追加内容) 1.系统中已有字体文件的字体 在需要显示的范围标签内中添加 style=”font-family:NSimSun;” ,...
  • 1、使用Typeface属性或自定义View修改字体 字体文件放在src\main\assets\fonts目录下;...也可以自定义View设置自定义字体: public class Font70TextView extends AppCompatTextView { public Font7..
  • 而且,你说你设置的字体是常规字号的,那截图中“Apple”的字体应该就是生效的。我现在主要费解的是,为什么你最上面的截图中“Apple”的字体也是不正确的,而我这里是正确的。Index: projects/sdk/core/loader/src/...
  • 1.最简单直接的方式设置字体(1)-初始化控件,拿到该控件的对象,设置字体textView.setTypeface( Typeface.createFromAsset(this.getAssets(), "CodeBold.ttf"));...通过自定义TextView来设置字体如下调用android:...
  • android 自定义全局字体

    热门讨论 2013-12-03 17:46:01
    android 自定义全局字体 在assets下面建font文件夹,放入第三方字体(例:娃娃体)
  • 一、修改TextView字体 假设现在有一个字体文件msyh.ttf;对于某个TextView来说,如果想修改它的字体,可以简单的使用如下代码: val tv = findView() val tf = Typeface.createFromAsset(assets, "msyh.ttf") tv....
  • 首先将自定义字体放到“assets”下面被实例化之后再使用,如果你的DDMS中的system/fonts/....下面有你需要的ttf文件的话,可以直接使用下面的方法来调用在程序中通过如下方式实例化自定义字体:Java代码 :Typeface....
  • 简单实现自定义Android TextView字体

    千次阅读 2020-12-12 22:20:22
    分两步:1、引入字体文件 2、调用setTypeface()方法
  • Android Typeface Helper自定义字体库.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • Smart Fonts for Android Smart Fonts is an Android Studio Library which makes it easy to use Custom Fonts (TTF or OTF) in your apps. It handles the Android text widgets (TextView, EditText, CheckBox, ...
  • 如何在android studio中创建自定义字体? 我试图使用自定义字体,我读过,我想将字体放在资产/字体。 我已经搜索了很长时间,但很难找到帮助。 我哪里错了?我真的不知道该怎么做。 我写下了所有的细节。我试过了,...
  • android自定义字体

    2021-05-28 06:02:06
    Android O通过字体资源支持自定义字体,支持.otf(OpenType)和.ttf(TrueType)字体格式。只要有响应的otf或ttf文件,我们的目标就可以达到。step1.在app / res文件夹中新建字体文件夹,就像创建 colors, values, ...
  • Android自定义字体.zip

    2021-08-18 16:41:39
    Android自定义字体

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,489
精华内容 16,195
关键字:

安卓手机自定义字体