动态设置字体大小

来源:互联网 发布:微信开发java教程书籍 编辑:程序博客网 时间:2024/06/12 23:36
=============
实际情况中我使用的是第一种,textview.setTextSize(float size);//直接输入要设置的字体大小 ,单位应该是sp的;
为了确保准确,可以结合第二种使用 textview.setTextSize(TypedValue.COMPLEX_UNIT_SP,size);//输入单位参数、字体大小


---------第一种
Android 
setTextSize方法:设置字体大小、
setTypeface方法:设置字体样式

canvas.drawText()字体设置居中  


setTextSize方法:设置字体大小


【功能说明】该方法用于设置画笔的字体大小。该方法主要用在绘制字符串的场合,对于一些图形则没有效果。


【基本语法】public void setTextSize (float textSize)


其中,参数textSize为字体大小,浮点型数据。


详情见:
http://snailszzy.blog.163.com/blog/static/94399093201372110255918/




--------------第二种
使用如下代码时,发现字号不会变大,反而会变小:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(size);
后来发现getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的,两者单位不一致才造成这样的结果。


这里可以用setTextSize()的另外一种形式,可以指定单位:
setTextSize(int unit, int size)
TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels


下面这样就正常了:
size = (int) mText.getTextSize() + 1;
mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
详情见:
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c422461f1c2eb9ec7b7d4b588693272758b21a1cacab672c601e76e0dd9bd3149ca697292983263e7408c31c528516ee9c0032c050d60da3e90ee6cab169dbf9&p=8b2a9715d9c04aae2af182354647c1&newp=8b2a975d87934eac53ecdf2157408e231610db2151d7d1176b82c825d7331b001c3bbfb423231305d3c7766301af4b56e0f33d72350123a3dda5c91d9fb4c574799076&user=baidu&fm=sc&query=setTextSize&qid=c0f7879500000427&p1=2





0 0
原创粉丝点击