Android自己设置字体
在main文件夹下,新建assets/fonts文件,增加.otf文件
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; }}
布局文件中使用
<com.sugrsugr.ivyapp.sugrsmartivy.widget.CustomBoldTextView android:layout_marginTop="27dp" android:layout_marginBottom="16dp" android:textColor="@color/green_8CC63F" android:textSize="25sp" tools:text="Hi" />
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android自己设置字体
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android自己设置字体