在main文件夹下,新建assets/fonts文件,添加.otf文件

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

字体工具类import android.app.Application;import android.graphics.Typeface;/**

* 字体工具类

* author:wiki on 2018/11/9

* email:zhengweiqunemail@qq.com

*/public class CustomFontManager {    private static CustomFontManager singleton;    private Typeface lightFont;    private Typeface boldFont;    private CustomFontManager() {

}    public void init(final Application context) {        //读取字体文件

this.lightFont = Typeface.createFromAsset(context.getAssets(), "fonts/SFCompactText-Light.otf");        this.boldFont = Typeface.createFromAsset(context.getAssets(), "fonts/SFCompactText-Semibold.otf");

}    public synchronized static CustomFontManager getInstance() {        if (singleton == null) {

singleton = new CustomFontManager();

}        return singleton;

}    public Typeface getLightFont() {        return this.lightFont;

}    public Typeface getBoldFont() {        return this.boldFont;

}

}

自定义字体基类import android.content.Context;import android.support.v7.widget.AppCompatTextView;import android.util.AttributeSet;/**

* 自定义字体类型 基类

* author:wiki on 2018/11/9

* email:zhengweiqunemail@qq.com

*/public abstract class BaseCustomTextView extends AppCompatTextView {    public BaseCustomTextView(Context context) {        super(context);

setFont();

}    public BaseCustomTextView(Context context, AttributeSet attrs) {        super(context, attrs);

setFont();

}    public BaseCustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);

setFont();

}    protected abstract void setFont();

}

字体类import android.content.Context;import android.util.AttributeSet;import com.sugrsugr.ivyapp.sugrsmartivy.util.CustomFontManager;/**

* SFCompactText-Semibold 字体

* author:wiki on 2018/11/9

* email:zhengweiqunemail@qq.com

*/public class CustomBoldTextView extends BaseCustomTextView {    public CustomBoldTextView(Context context) {        super(context);

}    public CustomBoldTextView(Context context, AttributeSet attrs) {        super(context, attrs);

}    public CustomBoldTextView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);

}    @Override

protected void setFont() {

setTypeface(CustomFontManager.getInstance().getBoldFont());

}

}

AppManager中初始化字体import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.support.multidex.MultiDexApplication;import com.sugrsugr.ivyapp.sugrsmartivy.util.CustomFontManager;/**

* 初始化资源

* author:wiki on 2018/11/9

* email:zhengweiqunemail@qq.com

*/public final class AppManager extends MultiDexApplication {    private static AppManager instance;

public static AppManager getInstance() {        return instance;

}    public static Context getContext() {        return instance.getApplicationContext();

}    @Override

public void onCreate() {        super.onCreate();

instance = this;        //初始化字体类

CustomFontManager.getInstance().init(this);

}    /**

* 获取本地软件版本号

*/

public static int getLocalVersion(Context ctx) {        int localVersion = 0;        try {

PackageInfo packageInfo = ctx.getApplicationContext()

.getPackageManager()

.getPackageInfo(ctx.getPackageName(), 0);

localVersion = packageInfo.versionCode;

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}        return localVersion;

}    /**

* 获取本地软件版本号名称

*/

public static String getLocalVersionName(Context ctx) {

String localVersion = "";        try {

PackageInfo packageInfo = ctx.getApplicationContext()

.getPackageManager()

.getPackageInfo(ctx.getPackageName(), 0);

localVersion = packageInfo.versionName;

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}        return localVersion;

}

}

布局文件中使用

android:layout_marginTop="27dp"

android:layout_marginBottom="16dp"

android:textColor="@color/green_8CC63F"

android:textSize="25sp"

tools:text="Hi" />

作者:淡淡_孩子气

链接:https://www.jianshu.com/p/a56c96c114b0

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐