Android中发现java代码设置的字体过大
来源:互联网 发布:数据共享交换 实现方式 编辑:程序博客网 时间:2024/05/17 07:48
转自:http://www.2cto.com/kf/201211/170733.html
//给一个id为name的TextView设置字体大小
TextView mName = (TextView)findViewById(R.id.name);
mName.setTextSize(22);
开始学Android的时候,设置字体大小,无非用上面的代码。写的非常舒服,都不知道22用的是什么单位,字体太小,数字改大点,字体太大,数字改小点。Android编写多了,想要读dimens里设置的22值。很简单下面就是代码。
//XML中的定义<dimen name="my_text_size">22sp</dimen>
//给一个id为name的TextView设置字体大小
TextView mName = (TextView)findViewById(R.id.name);
mName.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimensionPixelSize(R.dimen.my_text_size));
有时候用一个方法都不怎么看单位了,只知道类型,其实setTextSize()方法写的很清楚,一个参数的方法,单位是scaled pixel,就是sp,不是px(像素)。也就是跟一般xml中定义的<dimen name="my_text_size">22sp</dimen>是一个单位。两个参数的重载方法,一个是单位,一个是数值。
一般例子:
setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素
setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP
setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP
getDimensionPixelSize()方法返回的是像素数值,所以mName.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimensionPixelSize(R.dimen.my_text_size)); 是这样的写法。
开始我写成了mName.setTextSize(getResources().getDimensionPixelSize(R.dimen.my_text_size));发生了严重错误,如上所说,setTextSize默认是SP单位,我却传进去了像素的数值,结果字体变异常大了。
- Android中发现java代码设置的字体过大
- Android代码中设置TextView的字体
- Android在代码中按照SP设置字体的大小
- [Android开发] java代码设置字体的背景颜色
- android Java代码设置textview的字体资源颜色
- Android 代码中设置字体颜色
- Android 代码中设置TextView字体颜色
- android代码设置字体
- Eclipse中设置代码的字体
- Android中字体设置
- Android中Paint字体属性的设置
- android中字体颜色的设置
- Android中Paint字体属性的设置
- Android中Paint字体属性的设置
- Android中字体颜色的设置
- Android中字体颜色的设置
- Font---Android中字体颜色的设置 .
- Android中Paint字体属性的设置
- 统计分析:置信区间
- struct和typedef struct彻底明白了
- size_t为何这么重要?
- springMVC利用过滤器防止xss攻击
- 双色球随机生成一组号码
- Android中发现java代码设置的字体过大
- Spring 实现发送电子邮件的两种方法
- JVM内存的一些重要参数
- innerHTML 和 getElementsByName 在IE下面的bug 的解决
- ActionContext类与ServletActionContext类操作request域、session域内的属性
- Liunx下用代码设置ip地址
- SpringMVC+Json构建基于Restful风格的应用
- Android 可以多选的分组联系人列表
- Android 四大组件 (三) ContentProvider 使用简介