android开发分享Android TextView setTextSize不正确地增加文字大小

这是TextView的扩展。 getTextSize()setTextSize()不会被覆盖,我不扩展这些方法。 编程1.6,API级别4。

这个代码中的循环会导致每次迭代大小乘以1.5,例如,如果大小最初从getTextSize读取200,则setTextSize(size) ,再次调用getTextSize读回300。

 public void shrinkTest() { float size = this.getTextSize(); while (size > 8) { this.setTextSize(size); size = this.getTextSize(); } } 

为什么是这样?

    赫,混单位问题。 看起来有点不直观,但这是一个简单的修复。 默认方法setTextSize(float)假定您inputsp单位(缩放像素),而getTextSize()方法返回一个确切的像素大小。

    你可以通过使用替代的setTextSize(TypedValue, float)来解决这个问题,就像这样:

     this.setTextSize(TypedValue.COMPLEX_UNIT_PX, size); 

    这将确保你正在使用相同的单位。

    setTextSize()getTextSize()使用不同的单位。 set()的参数是密度无关的“缩放像素”,而get()返回普通的旧像素。

    使用TypedValue传递大小单位,如下所示:

    TypedValue.COMPLEX_UNIT_PX //像素

    TypedValue.COMPLEX_UNIT_SP //比例像素

    TypedValue.COMPLEX_UNIT_DIP //与设备无关的像素

    setTextSize(TypedValue.COMPLEX_UNIT_SP,18)

    以上就是android开发分享Android TextView setTextSize不正确地增加文字大小相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/513026.html

      (0)
      上一篇 2020年11月27日
      下一篇 2020年11月27日

      精彩推荐