记一次setTextSize失效的问题的解决过程

原创 2018年04月17日 13:10:15

概述

最近在忙着改已经上线产品的Bug,遇到了一个对于我来说很头疼的问题,因为一上来就走了弯路,卡了蛮长的时间未能解决,在这里特意记录一下。

问题描述

我自定义了一个很简单的textview,让它是正方形的view,代码如下:

public class SquareTextView extends AutoResizeTextView {

    public SquareTextView(Context context) {
        super(context);
    }

    public SquareTextView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public SquareTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, widthMeasureSpec);
    }
}

然后也没有多想,在代码里就设置了setTextSize,去动态设置这个textview的字体大小,发现没有效果。

问题解决

为此我进行了各种各样的尝试(一把辛酸泪),最终我在看文档的时候发现了这句话:

setTextSize
added in API level 1
void setTextSize (float size)
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.

Note: if this TextView has the auto-size feature enabled than this function is no-op.

再强调一遍:

Note: if this TextView has the auto-size feature enabled than this function is no-op.

这句话提醒了我,是不是因为我设置了自定义的始终为正方形的textview,而导致动态代码设置字体大小失败呢。于是我使用了textview而不是我自定义的view,发现可以动态设置字体大小了。

总结

其实这个问题很简单,我之所以在这里特意记录就是为了提醒自己,也是提醒大家多去看文档,看官方文档,说不定其中的内容就会对我们有一些启发,这样可以避免很多坑,希望也能帮助到你~

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

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

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

一次生产问题排查解决过程(小问题,大神请绕过)

今天中午忽然后被从睡梦中叫醒,一脸懵逼的看着产品站在我面前,说出问题了,生产环境短信数据库,有6000万条记录,怀疑是我们营销系统发的。我艹,汗毛炸立呀,这得多少钱,我的心直接沉到底了。      ...
  • liufei198613
  • liufei198613
  • 2017-11-14 15:08:45
  • 55

TextView的setTextSize和getTextSize单位不同

今天要弄一个根据textview长度自动调节文字大小,防止文字超出范围导致UI混乱的问题,你懂得国际化的过程中很多语言的相同意义的文案长度不一样,导致UI很难看。 tv是需要自动调节文字大小的Tex...
  • a357664853
  • a357664853
  • 2016-08-25 18:05:50
  • 2583

Android setTextSize的使用

Android setTextSize的使用
  • bitian123
  • bitian123
  • 2016-08-09 12:29:55
  • 1160

记录一次iOS上线的坎坷经历

本次上线被苹果拒了将近10次,这次上线真可谓坎坷,多磨!对苹果的审核人员真是无语了,感觉上线7分靠运气,3分靠实力!再此记录一些细节: 1 第一次被拒 原因:APP名字中出现“联通”两个字,结果被...
  • u012951123
  • u012951123
  • 2017-03-10 17:11:53
  • 327

记一次PermGen持续增长的解决过程

前言 这个问题的起因,是一次PermGen持续增长的报警,而问题的解决,是PermGen、类加载、Spring、JDK等知识的融合。 本次问题,从发生到最终解决,经历了...
  • shan9liang
  • shan9liang
  • 2015-04-30 23:46:37
  • 1925

TextView 之 setTextSize(float size)

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

解决Django和EasyUI搭配使用时出现的CSRF问题

django开启csrf验证,解决jquery-easyui datagrid 自动发送的ajax没有csrf值的问题。
  • shmily_dou
  • shmily_dou
  • 2017-10-09 10:49:50
  • 79

记一次曲折的渗透测试经历

昨天把jexboss脚本整合到我的多线程框架里,扫了一遍全国jboss,发现一千多个shell.工具地址在:https://github.com/Xyntax/POC-T随意拿了一个看似大厂商的,作本...
  • cd_xuyue
  • cd_xuyue
  • 2016-04-21 19:16:24
  • 8320

记一次Marathon被黑过程

前几天早上打开Mesos平台,发现有一个Killed的任务,MESOS_TASK_ID=hyakuhei.a318e232-28d9-11e6-bc8f-96bed1f124a2,名字很奇怪,并不是我...
  • rapheler
  • rapheler
  • 2016-08-17 11:09:42
  • 796
收藏助手
不良信息举报
您举报文章:记一次setTextSize失效的问题的解决过程
举报原因:
原因补充:

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