android:TextSize问题

原创 2015年07月09日 16:26:15
今天写了个外部类监听器改变字体大小但是无论如何当点击缩小按钮时字体都反而变大:
package jxufe.penglong.edittest;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class OutterListener implements OnClickListener {
private TextView text;
private float size=12;

public OutterListener(TextView textView){
this.text=textView;
}
public void onClick(View v) {
size=text.getTextSize();
switch (v.getId()) {
case R.id.bigger:
size+=4;
break;
case R.id.smaller:
size=size-4;
break;
default:
break;
}
if(size>=72){
size=72;
}
if(size<=4){
size=4;
}
text.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
System.out.println(text.getTextSize());

}

}
检查代码逻辑没有问题,只能打印点击后字体大小跟踪下,发现字体无规律增大,自然而然想到是不是减小的值太小了,然后我设置每次减小值大于字体大小的一半,情况还是如此;
后来只有查找android帮助文档:发现setTextSize有两个方法, 分别为:
 
 

public void setTextSize (float size)

Added in API level 1

Set the default text size to the given value, interpreted as "scaled pixel" units. This size is adjusted based on the current density and user font size preference.

public void setTextSize (int unit, float size)

Added in API level 1

Set the default text size to a given unit and value. See TypedValue for the possible dimension units.

Related XML Attributes
另一种方法可以带一个参数设置单位:
关键在于:发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的 
所以我们要改变单位 
 text.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

相关文章推荐

android 解决百分比布局适配时Textview的字体Textsize比例缩放问题

转至:http://blog.csdn.net/qq_29777823/article/details/51792630 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...

android:textSize="20dp" 中20dp是什么意思?

dip: device independent pixels(设备独立像素),不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖于像素。 ...
  • Baple
  • Baple
  • 2015年07月09日 15:29
  • 1006

解决安卓TextView高度和textSize大小不一致问题

在设计安卓界面的时候我发现一个TextView在布局上占用的高度和属性textSize的大小不一样,要比textSize要来的大(比如textSize=”12dp”,实际的高度大概有14-16dp),...

android-getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位

2011-08-26 22:57 509人阅读 评论(1) 收藏 举报 使用如下代码时,发现字号不会变大,反而会变小: size = (int) mText.getTextSize(...

安卓代码中获取dimen设置字体大小setTextSize,会变得比dimen的值还大——解决方法

动态设置TextView字体大小时候,会出现偏差。TextView中暴露出来设置字体大小的方法有两种。setTextSize(float size)setTextSize(int unit, floa...

TextView的setTextSize方法添加单位

setTextSize(int unit, int size) TypedValue.COMPLEX_UNIT_PX : Pixels TypedValue.COMPLEX_UNIT_SP : Sca...

Android setTextSize

在帮TextView控件设置大小的时候,发现和在XML中用PX设置的不一样,原因是setTextSize()默认的单位是sp,可以用另一个设置字体大小的方法: setTextSize(int uni...

TextView 之 setTextSize(float size)

TextView在设置文字大小的时候会使用TextView 的 setTextSize(float size)方法,刚开始使用的时候,一直以为直接使用设置的是px,设置多少就是多少,但是今天仔细跟踪了...

android TextView空间的setTextSize()方法在真机上运行大小问题

今天调试一个项目,点击控件,放大或缩小TextView中的文本字体大小 它在虚拟机上能正常运行,但在真机上出现错误 给段代码: viewText.setTextSize(viewText.getTex...
  • msl0903
  • msl0903
  • 2012年08月20日 17:26
  • 11012

TextView.setTextSize和Paint.setTextSize

TextView.setTextSize和Paint.setTextSize TextView.setTextSize是以sp为单位的 Paint.setTextSize()是以像...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android:TextSize问题
举报原因:
原因补充:

(最多只允许输入30个字)