屏幕分辨率/物理尺寸(Screen resolution / Physical size)

2019-09-16 23:33发布

我执行的Android(API 10)的应用程序。 我对平板电脑(据说),并为手机设计的很少。 关于前一句听起来可能有点傻:在我看来,布局应根据设备的物理尺寸采摘 - 不解决,否则有可能会以高分辨率呈现,也就是说,5×5的网格,在相当混乱电话,充分小型方式。 为了通过物理尺寸提供我司使用得/ RES / * 版图的文件夹。 同意?

另外:我有点困惑的多屏指南的物理尺寸的定义。 你介意解释物理尺寸是什么在Android系统方面的意思它在衡量真实 ? 有没有任何DPI相关

谢谢。

Answer 1:

一种API级10的解决方法可能是这样的:

  1. 使用COMPAT LIB从SDK,让您可以与片段设计。

  2. 假设一切之前的Android 3.0是一个电话。 例如使用您的布局文件布局/ *本(其余将根据它,除非被覆盖的)。 这个假设基本上只有错误的,原来的三星Galaxy Tab 7" 自2009年。

  3. 假设在Android 3.x的一切都是平板电脑(他们是),所以如果你想要做一些具体的平板电脑布局,并让他们在布局-V11(也许还布局V12如果有什么具体到Android 3.1)。 平板具体布局可能意味着你不同的安排您的片段和/或同时显示多个片段。

  4. 一切新(安卓3.2+),你可以使用新的东西,从API级别13.如布局sw600dp /对一些布局等等等等http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts



Answer 2:

物理尺寸通常以英寸衡量,它只是告诉您真实的设备的屏幕尺寸(通常3-4"英寸手机和8-11"适用于平板电脑)。

DPI,是不是与它相关。 DPI表示屏密度,多少像素在给定区域(通常是平方英寸)被示出。 它可以被看作是屏幕质量的度量。

分辨率是由两者的乘积给出; 它表达屏幕上的物理像素的总数。

让我们回到第一个问题,你应该独立尽可能密度 ; 您的应用程序应该“看起来一样”在具有不同密度的设备。 该/ RES / * 版图的文件夹被设计为提供此功能,系统扩展绘制资源到合适的大小,然后你可以在你的清单,你的应用程序支持任何声明密度:

android:anyDensity="true"

在页面http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch你可以学到如何安卓选择最佳匹配的资源。



Answer 3:

有了Android API 10靶向片使用类似大概只是区分屏幕的实际尺寸在代码中的最佳选择: https://stackoverflow.com/a/5789916/1319155 ,然后只加载如果大小不同的绘制返回值是(你想声明为“平板电脑”或任何大小)大于6。

你真的不能只使用大小的文件夹的原因(即布局/大)是因为该文件夹不手机和平板电脑之间的区别非常好。 Kindle的消防和Galaxy Nexus的都可以被认为是“大”的设备。

你真的不能使用DPI的原因是因为这不是什么类型的设备很好地反映它,像素是多么“密集”是在屏幕上。 大多数新手机都更加密集(每英寸具有更多的像素),比片反正。



Answer 4:

这样做有两种方式。 从Android 1.6的(API 4)上,有四个布局描述该显示器的物理尺寸:小,正常,大,和XLARGE。 如上所述http://developer.android.com/guide/practices/screens_support.html ,它们分别对应于:

  • XLARGE屏幕至少960dp X 720dp
  • 大屏幕至少640dp X 480dp
  • 正常屏幕是至少470dp X 320dp
  • 小屏幕至少426dp X 320dp

请注意,这些都是在DP,没有DPI测量。 DPI是每英寸点数,并指定屏幕像素密度。 DP,也写DIP,是密度独立像素。 再次从引导:

密度独立像素(DP)

定义UI布局时应该使用,以表达布局尺寸或位置的密度无关的方式的虚拟像素。 密度无关的像素相当于一个物理像素160 dpi的屏幕,这是由系统为“中”密度屏幕假定基线密度上。 在运行时,系统透明地处理必要dp单位的任何缩放,根据所用屏幕的实际密度。 的dp单位到屏幕像素转换是简单的:PX = DP *(DPI / 160)。 例如,240 dpi屏幕上,1个DP等于1.5物理像素。 定义应用程序的用户界面时,你应该总是使用dp单位,以确保不同密度的屏幕UI的正确显示。

换句话说,160 DP = 1" 运用这个标准,我们可以看到:

  • XLARGE屏幕是至少6" ×4.5" (7.5" 对角线)
  • 大屏幕是至少4" ×3" (5" 对角线)
  • 正常屏幕是至少2.9" ×2" (3.5" 对角线)
  • 小屏幕是至少2.6" ×2" (3.3" 对角线)

(不知道为什么选择这么奇怪,但是这是他们定义了什么。)

从Android 3.2版上(API 13),有更多的选项,如这里所描述: http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts

在这里,您可以使用“最小屏幕宽度”,“可用宽度”或“高度可用”选项来定义自己的类别; 再次,所讨论的单元是DP,这是1/160" 请注意,这些指定在设备上的两个维度中的较小 - 例如,用于7" 他们建议指定布局sw600dp片剂,即“最小宽度3.75英寸“,这将是之间的中间的‘大’和‘XLARGE’在API 4中定义它们具有许多有关该主题的具体评论,包括关于宽度如何测量(它可以排除之类的东西的音符尺寸通知栏),所以这是值得考虑看看文档。



文章来源: Screen resolution / Physical size