自定义控件时使用setTextSize出现的问题
来源:互联网 发布:https seo 编辑:程序博客网 时间:2024/06/05 19:42
问题:自定义控件设置字体大小时使用setTextSize(getResources().getDimension(R.dimen.search_hot_item_text_size))得到的效果跟layout布局文件效果不一样呢?
主要看下setTextSize函数源代码:
如果不设置unit参数的话,默认是用TypeValue.COMPLEX_UNIT_SP,再看applyDimension函数:
TypeValue.COMPLEX_UNIT_SP的话,会用value*metrics.scaledDensity(屏幕分辨率),跟layout的数值就会不一样了,所以为了保持value一致,设置unit为COMPLEX_UNIT_PX
原来setTextSize函数对应的单位本身就是sp。如果在240密度下,30sp=45px,setTextSize函数内部还需要乘以一个scaleDensity,那么setTextSize(30sp)实际设置的大小为30spx1sp=45x1.5=67.5px。
所以在做自定义控件的时候,设置控件文本大小的时候需要小心,否则搞了半天也找不到问题的症结所在。
所以最好的做法是采用setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.search_hot_item_text_size));
0 0
- 自定义控件时使用setTextSize出现的问题
- 自定义控件 TextView.setTextSize(R.dimen.text_size_16)字体大小的问题
- Android setTextSize的使用
- 安卓开发——代码设置控件文字字号时的单位问题(setTextSize与getTextSize)
- 在自定义控件中启动一个活动时出现的undefin的错误问题
- 自定义TextView的TextSize属性getDimension和setTextSize的冲突
- win7 下使用vb开发工具拖动控件时出现控件闪烁问题的解决方法
- TextView.setTextSize 单位问题
- SetTextSize(),getTextSize()单位问题
- 自定义控件使用出现莫名错误--解决方法
- 自定义控件(子类化)和系统控件一起布局出现问题的解决方法
- QT 自定义控件使用问题
- 自定义strcpy函数时出现的问题
- 自定义控件的使用
- 自定义控件的使用
- 自定义控件的使用
- 自定义控件的使用
- 自定义控件时遇见的小问题
- ubuntu和win10双系统安装教程
- node-sass报错解决方法
- 关于使用ExcelEngine在Windows中编译的补充
- KVC-KVO
- 常用的后端命令 【笔记】
- 自定义控件时使用setTextSize出现的问题
- 符号链接与设备接口名
- CuratorFramework实现zookeeper文件夹与文件的上传下载
- 浅谈企业核心竞争力
- Android AndroidManifest.xml文件的android:supportsRtl属性详解
- ssdb安装和配置
- artTemplate模板引擎学习实战
- Linux查看双网卡绑定设置
- MenuItemCompat.getActionView(item)返回null