试图了解屏幕大小,以便我的应用在不同的设备上看起来一样。
我有两个设备,一个星系s3和一个星系标签8.两个都有相同的分辨率屏幕720 x 1280但s3是4.7英寸,而标签是8英寸
当我进行线性布局时,我在顶部将填充设置为130,这样第一个文本视图距离顶部130像素,因此背景上的图像不会被遮挡。
这在s3上很好但是当我在选项卡上加载时,填充需要更改为190像素才能看起来相同。
如果屏幕分辨率的高度在两台设备上相同(1280),我无法理解为什么我需要在屏幕上使用更大的填充
有没有办法解决如何让textview出现在两个设备上的同一位置
任何帮助表示赞赏
标记
答案 0 :(得分:2)
是的,有办法。
首先,您应该使用DP或SP单位而不是PX。 DP单元考虑屏幕尺寸和屏幕分辨率。你可以在这里看到更多:
What is the difference between "px", "dp", "dip" and "sp" on Android?
您还可以在res中创建一个文件夹,并为不同的设备添加不同的大小。
示例:
您已经拥有文件'dimens.xml'的文件夹'values',您可以添加边距和大小变量。
如果您创建文件夹'values-large'并复制文件'dimens.xml',您可以更改变量的大小并保留名称。
在设备'large'中,它将从其余设备加载不同的值。
您可以在此处查看所有文档:http://developer.android.com/guide/practices/screens_support.html
希望它对你有所帮助。
答案 1 :(得分:1)
您需要为2种不同的屏幕尺寸添加2种不同的布局。实际上,您可以提供仅受您考虑因素限制的多屏幕支持。您可以根据屏幕大小自定义布局。 Here是帮助您前进的官方文档。
答案 2 :(得分:0)
首先,您需要使用dp而不是px来执行这些操作。结果错误的原因是s3上每英寸的点数远远高于星系标签8的点数。您应该真正阅读此链接以了解更多信息。
[http://www.captechconsulting.com/blog/steven-byle/understanding-density-independence-android][1]