根据dpi和分辨率缩放TextView大小

问题描述:

如何选择文本大小以使其在每个设备上看起来都一样?我觉得这是一个不可能完成的任务,可能你会说我应该为每个dpi制作不同的值,但这并不能解决问题,因为存在具有相同dpi但具有不同屏幕分辨率的手机,并且最终它不会看起来不一样。任何人都可以帮助我吗?根据dpi和分辨率缩放TextView大小

Android指南建议使用SP尺寸文本:http://developer.android.com/training/multiscreen/screendensities.html

的SP尺寸取决于屏幕密度,而且用户的喜好。比方说,用户将手机配置为大字体(例如视觉问题),您的应用程序将可供该用户使用。

在实践中它看起来像这样:textSize="16sp"

+0

它根本没有帮助。 – Greyshack 2015-02-23 19:22:22

+0

你所要做的是违背最佳实践。我会建议重新考虑它。但是,如果你仍然想这样做,看看这里如何获得屏幕大小http://*.com/questions/1016896/get-screen-dimensions-in-pixels一旦你有屏幕的大小,你可以很容易将它计算为在不同密度/屏幕分辨率下为所有字体计算“相同”尺寸。 – Quanturium 2015-02-23 19:27:20

+0

这是为什么违反最佳做法? – Greyshack 2015-02-23 19:36:20

如果你坚持有每个设备上相同的外观,你可以在不同的设备管理的一些细节。看网页Display classWindowManager。以下是我用于某个UI元素的示例代码:

Display display = getActivity().getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 

祝您好运。管理所有图形并不容易。

+0

使用重量嵌套LinearLayouts使其对文本内容除外大小,这对我来说是最难的部分。我会试试这个,谢谢。 – Greyshack 2015-02-24 08:12:37