系统字体切换
来源:互联网 发布:linux常用命令大全 编辑:程序博客网 时间:2024/05/23 01:18
在项目过程中遇到一个问题,用户要求改变launcher的HomeWidget字体,采用他们提供的自定义字体,但是由于widget的视图是由RemoteViews加载进来的,而RemoteViews不提供方法可以获取到组件的实例,也没有方法可以设置对应组件的字体属性,因此需要另外想办法。
fontfamily属性
android系统内置了一些字体,可以在程序中使用,也可以在xml配置时进行修改,支持字段为textStyle;typeface;fontFamily。
系统内置了三种style: normal;bold;italic
系统内置了几种字体:serif;casual;cursive;monospace;sans-serif等,他们都是系统自带的Roboto font families
typeface和fontfamily的功能是一样的。在xml中设置typeface只能设置系统自带的。
设置自定义字体一般方法
在assets/fonts目录下放置.ttf文件
在程序中代码设置对应字体
AssetManager mgr=getAssets();//得到AssetManagerTypeface tf=Typeface.createFromAsset(mgr, "fonts/ttf.ttf");//根据路径得到Typefacetv=findViewById(R.id.textview);tv.setTypeface(tf);//设置字体
但是由于我在代码中拿不到组件实例,因此也没有办法直接设置,因此只能换另一种思路。
另外一种实现需求的方法
将自定义字体文件重命名,改成系统中已有的不常用的字体文件名,然后覆盖测试机系统中system/fonts目录下的对应字体文件。
在xml中直接设置fontfamily属性为我们替换的字体对对应的属性,运行程序即可
缺点是会删除系统中原来的字体。
如果需要将字体整体添加的话,还需要修改对应的字体相关API,重新编译SDK,那么久可以通过xml进行设置了。
相关链接:
字体和fontfamily属性对应关系
替换Android默认字体
0 0
- 系统字体切换
- 很简单的在Ubuntu系统下安装字体和切换默认字体的方法
- Android字体切换
- android TextView字体切换
- android切换字体
- 系统字体
- 关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题
- 如何实现字体切换功能
- Android---计时器切换字体颜色
- 获取当前系统字体
- 获得系统字体列表
- 枚举系统字体
- Symbian系统字体,全局变量
- 获取系统字体,颜色
- 获取当前系统字体
- PPC获取系统字体
- 读取到系统字体
- Symbian系统字体,全局变量
- sql语句查询经纬度范围
- 顺时针打印矩阵
- SQL中往表中插入数据的几种不同形式的小结
- 自动化测试-知乎关注功能用例
- Android子线程更新UI就会Crash么
- 系统字体切换
- 有关opencv的学习(21)—图像滤波(2)
- JNI开发基础(一)
- 如何成为一名优秀的程序员
- 模拟登陆csdn
- Tomcat和IIS整合过程—上—IIS安装
- 算法提高 求最大值 C语言
- 编写USB 驱动程序
- java工具类-------get请求和post请求