支持不同分辨率,但屏幕大小相同

3
同样的屏幕尺寸,例如10英寸,可以有不同的分辨率:1280x800和2560x1800。这样,两个设备都适合于“sw720”,并从“dimens-sw720”文件夹中获取“dimens”,但是这样视图在较小的设备上要么太大,在较大的设备上正常,要么在小设备上正常,在大设备上太小。我该如何让应用程序区分这两个屏幕,以便它们使用不同的“dimens”?如果使用“xlarge-mdpi”和“xlarge-xhdpi”代替“sw-720”,这会使我这里的一个5.5英寸设备上的视图出现问题(不确定是否会发生在所有5.5英寸设备上)。
我已经花了很多时间在这里寻找答案,重新阅读文档并与其他开发人员咨询,但到目前为止,没有人能给我答案。这里的一个答案之一说,如果屏幕尺寸相同,但分辨率不同,并且我使用了“dp”,则视图在两个设备上都应该正常,但在这种情况下并非如此。这些是我经历的问题,并遵循了与它们相关的每个相关问题:Q1Q2Q3Q4和当然主要文档链接,其中包含有关支持不同屏幕分辨率的更详细信息的链接。我错过了什么吗?
1个回答

1
我在6个月前也遇到过这个问题。最终,我找到了sdp库。这个库使得应用程序响应所有屏幕变得非常简单。
你需要做的就是使用_10sdp代替10dp。就这样!

enter image description here

将这个库添加到你的 gradle 中。
dependencies {
  implementation 'com.intuit.sdp:sdp-android:1.0.5'
}

我一定会尝试的。谢谢你的快速回复! - Noterezeck
无用的库,使用ConstrainLayout很容易实现。 - user10053723
对于已有数百个布局的旧项目,最好的方法是将布局转换为“约束布局”(Constraint),还是仅在“dimen.xml”中将“dp”更改为“sdp”? - Khemraj Sharma
2
你更喜欢使用LinearLayout而不是ConstraintLayout,因为后者对你来说太难了,而且你从来没有“将图像保存在特定文件夹”中,而是使用奇怪的库-哈哈,好吧,这是你的决定。 - user10053723
因为我不想将22个项目转换为ConstraintLayout。当然,ConstraintLayout具有非常优秀的功能,毫无疑问。我也会使用它。 - Khemraj Sharma
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接