Android Paint SettexSize

Android Paint SettexSize,android,text,Android,Text,好吧,我知道已经有很多问题和我问的问题是一样的,但是问题是这些解决方案都不适合我,也不是我想要的。我的问题是,当我使用Paint类的setTextSize方法时,文本在较小的屏幕上看起来太大,而在较大的屏幕上看起来太小。我想要的是,我能够在我的设备上将其更改为我想要的大小,然后在任何其他设备上,该大小应相应地更改(缩小、放大),并且在其他设备上应以相同的方式显示(不相同的大小)。我已经试过用密度乘以我想要的dp和所有其他东西,但都不起作用。首先,你使用的任何大小都应该基于sp缩放的像素。单位以s

好吧,我知道已经有很多问题和我问的问题是一样的,但是问题是这些解决方案都不适合我,也不是我想要的。我的问题是,当我使用Paint类的setTextSize方法时,文本在较小的屏幕上看起来太大,而在较大的屏幕上看起来太小。我想要的是,我能够在我的设备上将其更改为我想要的大小,然后在任何其他设备上,该大小应相应地更改(缩小、放大),并且在其他设备上应以相同的方式显示(不相同的大小)。我已经试过用密度乘以我想要的dp和所有其他东西,但都不起作用。

首先,你使用的任何大小都应该基于sp缩放的像素。单位以sp为单位,相对于用户定义的默认大小进行缩放。这是对那些看不见的人来说的,他们可以选择一个更大的文本大小,并且所有的文本都会相对于这个选择进行缩放。您不应该在dp或px中设计文本,因为它们都不会随系统字体大小而缩放。调用getTextSize/setTextSize时,应将其视为sp


至于它在所有屏幕上看起来都是完全一样的,你不会明白,因为不同的OEM使用不同的默认高度和默认字体,更不用说用户可以覆盖其中任何一种。像素完美不应该是你的目标。这很好,因为这实际上是不可能的。

使用res下的dimens.xml文件控制不同设备的不同文本大小。选中此复选框我应该使用什么文本比例因子?因此,如果我喜欢一个屏幕上的某个大小,我如何从该数字扩展到其他屏幕密度?等等,这与将一个数字乘以密度(即,如果我想使用16 dp,我会:16*…DisplayMetrics.density)不是一回事吗。我说我已经试过了,但它对我不起作用,这就是我为什么要发帖的原因。你不需要做乘法或任何事情。只需为不同大小的设备创建不同的dimens.xml文件,并将文本大小放入其中。那将是不可能的,但我必须检查每一部手机,找出每一部手机的文本大小。。。有这么多的手机在那里,我不想看每一部…但我的文字(高分)是像这个板一样的东西里面,我需要一种方法,使它保持相同的外观(即在不同的设备上显示相同)。因为在一个较小的设备上,文本会越过电路板的边界,这使得它看起来非常不专业。必须有一种方法可以使文本在不同的设备上看起来相似,而不必检查每一台设备并尝试每一种文本大小,以确定哪一种适合哪一台设备……欢迎来到奇妙的开发世界。对于你的下一个技巧,试着翻译成西班牙语,看看它看起来是什么样子——一半的单词是原来的两倍长,没有一个合适。那么其他游戏是如何做到的呢?你是说已经完成的事情是不可能的。。。翻译是另一回事,只要我知道如何适当地扩展一种语言,其余的就只是重复,但对于我想要的每种语言。我只需要根据屏幕缩放一组文本的技巧。我并不是说这是不可能的。我是说这通常不是正确的尝试。通常情况下,你会尝试留出比你需要的更多的空间,这样它就可以放在更小的屏幕上。但是是的,你可以根据不同的尺寸重新设计。有一些事情你可以通过编程来做,比如通过画图计算文本的大小。在循环中测量以找到合适的大小,但是它们非常昂贵。一般来说,你可以在小型手机、普通手机、大型手机和平板电脑上进行测试,并调整它们的值。哦,顺便说一句,翻译比多尺寸的东西更难修复,因为你通常不想为语言重新设计。或者至少你试着避免它。