Android 禁止App字体随系统大小而更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 禁止App字体随系统大小而更改相关的知识,希望对你有一定的参考价值。

参考技术A   运营反馈,老年用户的手机多设置为大字体,在使用我们app过程中,由于字体被放大,导致布局错乱,部分功能按键遮挡,无法正常使用。
  收到问题,着手解决,除了对界面布局进行改写,改为约束布局,对app字体大小也进行统一管理,然而这不是主要的,最主要的是避免系统更改app字体的大小。
  android提供了相关的方法用来实现

  在BaseActivity中复写相关的方法:

经测试,在设置中把字体调整为最大,打开app,app中字体均保持不变,测试华为,vivo,小米机型均生效,于是交付测试。

如何在 iPhone 中动态更改 UITextView 中文本的字体大小

【中文标题】如何在 iPhone 中动态更改 UITextView 中文本的字体大小【英文标题】:How to change the font size of text in UITextView dynamically in iPhone 【发布时间】:2009-10-21 21:03:00 【问题描述】:

我有一个固定大小的 UITextView 说宽度和高度为 150,150。

目的是展示当天的想法。请注意尺寸需要保持不变,我无法更改。

现在,思想串的长度随思想而变化。我想要做的是更改文本的字体大小,以确保它不会在 UITextView 中显示任何空白空间,如果长度很小,或者如果它更大,它不会显示滚动。

那么如何根据思想字符串的长度来改变UITextView的字体呢。

以下代码有什么问题:

CGSize size;
    BOOL run=TRUE;
    CGSize txtViewSize = self.txt_tipView.frame.size;
    while(run)

        size = [self.txt_tipView.text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize:txtViewSize lineBreakMode:UILineBreakModeWordWrap];
        if((size.width<=txtViewSize.width) && (size.height<=txtViewSize.height))
            run = FALSE;
        else
            currentSize--;
    
    self.txt_tipView.font = [UIFont fontWithName:@"Helvetica" size:currentSize];//[UIFont boldSystemFontOfSize:12];

发生的情况是 TextView 中文本的大小始终为 60。即每一行只有一个单词。

【问题讨论】:

【参考方案1】:

设置一个隐式字体大小,假设您可以使用的最大可接受字体。然后,使用以下方法测量您的文本大小:

CGSize size = [text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize: maxTextSize lineBreakMode:UILineBreakModeWordWrap];

如果您获得的大小超出可接受的范围,请调整字体大小并重复。 maxTextSize 应该是你的 UITextView 的大小。

【讨论】:

您能否在代码中添加更多细节。就像我需要做的那样。我正在按照 CGSize 大小的方式进行操作;布尔运行=真; CGSize txtViewSize = self.txt_tipView.frame.size; while(run) size = [self.txt_tipView.text sizeWithFont:[UIFont systemFontOfSize: currentSize] constrainedToSize:txtViewSize lineBreakMode:UILineBreakModeWordWrap]; if((size.width 我觉得不错。有什么问题吗? 如果使用 UITextView 无法解决问题,也许您应该使用 UILabel 对其进行测试...也就是说,如果您期望的唯一功能是 显示一天的想法。 是的,它没有更正大小,而是以 60 的字体大小结束,每行显示一个单词。 是显示了整个文本,还是被截断了?是每行都显示一个,字体为 60,还是只显示几个?

以上是关于Android 禁止App字体随系统大小而更改的主要内容,如果未能解决你的问题,请参考以下文章

Android App修改字体大小,且不随系统字体大小更改

APP字体大小,不随系统的字体大小变化而变化的方法

Android中App控制字体大小

App字体大小不随系统改变而改变

如何把android textView字体大小固定写死,而不随系统设置字体大小的改变而改变。

app字体不随系统改变而变化