在_2575709中支持不同的屏幕尺寸(密度)时,通常关注的是为每个可能的屏幕创建不同的布局 . I.E.
-
ldpi
-
mdpi
-
hdpi
-
xhdpi
-
xxhdpi
-
xxxhdpi
我为 xhdpi 屏幕设计了一个布局作为参考,并在 dimens.xml 中定义了 dimensions . 现在 I want to give support it to every possible screen size. How can I do that?
据我所知,我可以使用this工具为其他屏幕尺寸找出合适的 dimens.xml 并将其添加到我的项目中 . 这是在我的情况下这样做的正确方法吗?
另一个问题, do I only need to create dimens.xml for above screen dimensions? If yes then what is w820dp?
谢谢你的帮助 . 我需要支持 phones only (不是平板电脑或其他设备) .
9 回答
你必须创建 Different values folder for different screens . 喜欢
有关更多信息,请访问此处
Edited 由 @humblerookie
您可以使用名为Dimenify的Android Studio插件,根据自定义比例因子自动为其他像素存储桶生成维度值 . 它仍处于测试阶段,请务必通知您遇到的任何问题/建议 .
我们希望在不同的屏幕上看到所需视图大小的变化 .
我们需要为不同的屏幕创建不同的值文件夹,并根据屏幕密度放置dimens.xml文件 .
当我在不同的值文件夹中更改dimens.xml时,我已经使用了一个TextView并观察了更改 .
请按照流程进行操作
normal - xhdpi \ dimens.xml
当我们更改normal - xhdpi \ dimens.xml时,以下设备可以更改屏幕的大小
nexus 5X(5.2“* 1080 * 1920:420dpi)
nexus 6P(5.7“* 1440 * 2560:560dpi)
nexus 6(6.0“* 1440 * 2560:560dpi)
nexus 5(5.0“,1080 1920:xxhdpi)
nexus 4(4.7“,768 * 1280:xhdpi)
Galaxy nexus(4.7“,720 * 1280:xhdpi)
4.65“720p(720 * 1280:xhdpi)
4.7“WXGA(1280 * 720:Xhdpi)
Xlarge - xhdpi \ dimens.xml
当我们更改Xlarge-xhdpi \ dimens.xml时,以下设备可以更改屏幕的大小
nexus 9(8.9“,2048 * 1556:xhdpi)
nexus 10(10.1“,2560 * 1600:xhdpi)
large - xhdpi \ dimens.xml
当我们更改large-xhdpi \ dimens.xml时,以下设备可以更改屏幕的大小
nexus 7(7.0“,1200 * 1920:xhdpi)
nexus 7(2012)(7.0“,800 * 1280:tvdpi)
以下屏幕显示在“搜索通用手机和平板电脑”中
large - mdpi \ dimens.xml
当我们更改large-mdpi \ dimens.xml时,以下设备可以更改屏幕的大小
5.1“WVGA(480 * 800:mdpi)
5.4“FWVGA(480 * 854:mdpi)
7.0“WSVGA(平板电脑)(1024 * 600:mdpi)
normal - hdpi \ dimens.xml
当我们更改normal-hdpi \ dimens.xml时,以下设备可以更改屏幕的大小
nexus s(4.0“,480 * 800:hdpi)
nexus one(3.7“,480 * 800:hdpi)
small - ldpi \ dimens.xml
当我们更改small-ldpi \ dimens.xml时,以下设备可以更改屏幕的大小
2.7英寸QVGA滑块(240 * 320:ldpi)
2.7“QVGA(240 * 320:ldpi)
xlarge - mdpi \ dimens.xml
当我们更改xlarge -mdpi \ dimens.xml时,以下设备可以更改屏幕的大小
10.1“WXGA(平板电脑)(1280 * 800:MDPI)
normal - ldpi \ dimens.xml
当我们更改normal - ldpi \ dimens.xml时,以下设备可以更改屏幕的大小
3.3“WQVGA(240 * 400:LDPI)
3.4“WQVGA(240 * 432:LDPI)
normal - hdpi \ dimens.xml
当我们更改normal-hdpi \ dimens.xml时,以下设备可以更改屏幕的大小
4.0“WVGA(480 * 800:hdpi)
3.7“WVGA(480 * 800:hdpi)
3.7“FWVGA滑块(480 * 854:hdpi)
normal - mdpi \ dimens.xml
当我们更改normal - mdpi \ dimens.xml时,以下设备可以更改屏幕的大小
3.2“HVGA滑块(ADP1)(320 * 480:MDPI)
3.2“QVGA(ADP2)(320 * 480:MDPI)
使用可扩展DP
虽然为不同的屏幕尺寸制作不同的布局在理论上是一个好主意,但是它很难适应屏幕尺寸和像素密度 . 如上面的答案所示,拥有超过20个不同的
dimens.xml
文件根本不容易管理 .How To Use:
要使用
sdp
:在
build.gradle
中包含implementation 'com.intuit.sdp:sdp-android:1.0.5'
,用
@dimen/50_sdp
替换任何dp
值,例如50dp
所以:How It Works:
sdp
与屏幕大小进行比例缩放,因为它基本上是每个可能的dp
值的不同dimens.xml
的巨大列表 .See It In Action:
这里有三种设备,屏幕尺寸和密度差异很大:
请注意,由于某些性能和可用性限制,
sdp
size单位计算包括一些近似值 .您必须为不同的屏幕创建不同的
values
文件夹,并根据密度放置dimens.xml
文件 .我上传了一个简单的java程序,它将您想要的项目位置和维度文件作为输入 . 基于此,它将在控制台中输出相应的维度文件 . 这是它的链接:
https://github.com/akeshwar/Dimens-for-different-screens-in-Android/blob/master/Main.java
这是参考的完整代码:
你可以把
dimens.xml
放进去1) values
2) values-hdpi
3) values-xhdpi
4) values-xxhdpi
并根据密度在相应文件夹中的
dimens.xml
中给出不同的大小 .如果你想查看更多:这是一个link的设备列表(平板电脑,手机, Watch ),包括
watch
,chromebook
,windows
和mac
. 在这里你可以找到密度,尺寸等 . 只是在这里,如果你也使用模拟器,这是一个很好的资源 .如果单击特定项目,它将在右侧显示更多详细信息 .
因为它是
Android
,我将发布与之相关的信息 .〜如果你保存一份网页,那就更好了 . 要离线查看 .
Android 3.2引入了一种新的屏幕尺寸方法,描述屏幕尺寸的数字都是“dp”单位 . 我们几乎可以使用
smallest width dp: “dp”单位可用于应用程序布局的最小宽度;这是您在显示器的任何旋转中遇到的最小宽度dp .
要创建一个,请右键单击 res >>> new >>> Android resource directory
从 Available qualifiers 窗口移动 Smallest Screen Width 到 Chosen qualifiers
在 Screen width 窗口中,只需编写"dp"值,您希望Android Studio使用该维度 .
然后更改为 Project 视图,右键单击新创建的资源目录
new >>> Values resource file 输入新文件名 dimens.xml ,您就完成了 .
有一个很好的图书馆,可以处理一切,减少你的痛苦 . 要使用它,只需在gradle中添加两个依赖项 -
在那之后使用这样的尺寸 -