andorid 修改字体一文搞定
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
替换字体也是一个比较常见的需求,一般分几种情况。实现起来也不麻烦,这里简单记录下
全局替换字体
步骤1
assets目录下拷贝字体文件
步骤2
application中替换默认字体
在Application的onCreate方法中增加替换方法
/** * 设置自定义字体 * * @param context * @param staticTypefaceFieldName 需要替换的系统字体样式 * @param fontAssetName 替换后的字体样式 */ public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) { // 根据路径得到Typeface Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName); // 设置全局字体样式 replaceFont(staticTypefaceFieldName, regular); } private static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) { try { final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName); staticField.setAccessible(true); //替换系统字体样式 staticField.set(null, newTypeface); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }
步骤3:新增主题Theme,并在AndroidManifest文件中注册
新增主题
<style name="YourTheme" parent="AppTheme.Base"> <item name="android:typeface" >serif</item> </style>
在AndroidManifest.xml文件中设置主题
<application xmlns:tools="http://schemas.android.com/tools" ... android:theme="@style/YourTheme" tools:replace="android:theme"> ... </application>
替换某些布局中的字体,也就是局部替换
步骤1:在res目录下新建font目录,拷贝字体文件
步骤2: 代码中替换
TextView textView = (TextView) findViewById(R.id.textView_font); Typeface typeface = ResourcesCompat.getFont(this, R.font.myfont); textView.setTypeface(typeface);
欢迎关注我的微信公众号,和我一起每天进步一点点!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android字符串反转、左移和右移
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 反转 反转最简单的就是用StringBuilder和StringBuffer的reverse方法 private String reverseString(String original) { StringBuilder builder = new StringBuilder(); builder.append(original); return builder.reverse().toString(); } 左移和右移都有很多种方式来实现,这里简单介绍下三次反转法来实现左移右移 右移 /** * 右移index位 * @param from * @param index * @return */ private String rightMoveIndex(String from, int index) { from = reverseString(from); String first = from.substring(0,index); String second...
- 下一篇
山不过来我过去-iOS 10联网问题分析及解决之道
从已知的用户反馈来看,目前iOS 10所有的版本都被偶现的首次安装App无法联网的问题所困扰。苹果迟迟未修复这个bug。详细的原因和解决办法可以参考:具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能。 不少用户因为这个原因给我们一颗星,严重影响我们App的声誉。所以我针对这个问题做一些分析,看看能否找到一些好的解决办法。 目前iOS系统所有权限如下表所示。并没有网络相关的权限。参看:http://stackoverflow.com/questions/29894749/complete-list-of-ios-app-permissions。 Contacts Microphone Calendars Camera Reminders HomeKit Photos HealthKit Motion activity
相关文章
文章评论
共有0条评论来说两句吧...