Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止系统字体大小更改对Android应用程序的特定部分产生影响?_Android_Text_Scaling_Autoscaling - Fatal编程技术网

如何防止系统字体大小更改对Android应用程序的特定部分产生影响?

如何防止系统字体大小更改对Android应用程序的特定部分产生影响?,android,text,scaling,autoscaling,Android,Text,Scaling,Autoscaling,系统范围的“字体大小”设置允许调整文本大小 它通常工作得很好,但在某些情况下会发生特殊情况,视图的特定部分应忽略此设置,字体大小应保持不变 我知道 但是现在(安卓10)不工作() 移除整个活动中的缩放,移除整个应用中的缩放 受影响的代码,已使用dp尝试(但失败): N(compass\u north\u一个字母)正在改变大小: 在您的情况下,我建议使用图像(脏的解决方案),因为它在您尝试做的事情中非常简单。您甚至可以在移动中创建图像,但前提是您需要深入 试试autoSizeTextType,

系统范围的“字体大小”设置允许调整文本大小

它通常工作得很好,但在某些情况下会发生特殊情况,视图的特定部分应忽略此设置,字体大小应保持不变

我知道

但是现在(安卓10)不工作()

移除整个活动中的缩放,移除整个应用中的缩放

受影响的代码,已使用
dp
尝试(但失败):


N(
compass\u north\u一个字母
)正在改变大小:


在您的情况下,我建议使用图像(脏的解决方案),因为它在您尝试做的事情中非常简单。您甚至可以在移动中创建图像,但前提是您需要深入

试试
autoSizeTextType
,它可以根据可用的视图大小自动调整文本大小。

它允许您指定最大尺寸、预设尺寸,以便您可以进行更多控制。 我不知道你的整个布局,所以实际上无法测试,但从你的代码片段来看,例如


另外,我认为您需要使用特定的大小指定
布局高度
,以限制自动调整大小的视图大小。
如果它不能工作,请尝试
应用程序:AutoSizeMaxtSize
,或者也可以进行粒度调整。

“但是现在dp的公认答案(Android 10)不起作用”--屏幕截图会有帮助。@Commonware我不确定屏幕截图会有什么帮助-文本正在改变大小,而我想停止。也许这会有帮助的情况下,我不知何故幻觉文本大小的变化?无论如何,我会添加它。有趣(在安卓8.1上,这不会发生)。您是否使用布局检查器查看TextView真正呈现的内容?“如果我以某种方式幻觉文本大小发生变化,可能会有所帮助?”--没有,但我需要查看您看到的内容。我把你的
文本视图
,放在一个废弃的项目中,在运行安卓10的Pixel 4上运行,我没有得到你看到的效果。我将字体比例提升到最大值,即使在终止进程后,N的大小也与字体比例正常时的大小相同。因此,创建一个废弃项目,将您的
TextView
放入其中,然后尝试在用于这些屏幕截图的设备上运行该项目。如果问题存在,可能是硬件不同。您可以在textview中使用自定义字体,这样它就不会受到任何更改的影响。可能的解决方案为什么他会牺牲本地化、缩放、渲染等,只是为了“这个案例”?提出这个建议的唯一原因是,如果你绝对自信,你知道发生了什么,并且没有其他办法。我对此表示怀疑,即使是这样,我还是希望OP handle字体缩放正确(以适应可访问性),而不是在他/她的应用程序上添加PNG…@MartinMarconcini这显然是一个显示方向的按钮,所以是的,我怀疑这将是一个简单的肮脏解决方案,正如我所说的。它不会“膨胀”应用程序,如果你使用一个额外的绘图。但这只是一个建议,并不是最好的主意,而是一个可以快速解决这个特定场景的方法,即使是糟糕的解决方案,至少它是一个解决方案。我希望有更好的东西,但是。。。
            <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:id="@+id/compassNorth"
            android:layout_alignParentTop="true"
            android:text="@string/compass_north_one_letter"
            android:textColor="#000"
            android:textSize="10dp"/>