创建新的sw <xxx> dp限定符</xxx>

时间:2014-01-19 07:32:29

标签: android android-layout android-resources

我有7英寸平板电脑和10英寸平板电脑,sw600dp和sw720dp的限定条件。我不明白这些数字是如何达到的。

我想为屏幕尺寸小于4英寸的手机创建新的布局。请问您能解释我应该如何使用最小的宽度限定符。

2 个答案:

答案 0 :(得分:4)

请先查看官方文档的"Configuration example"部分。它很好地解释了使用的内容和时间。在您的情况下,没有限定符的默认布局文件夹用于手机。

什么是最小宽度限定符?最小的宽度是

  

屏幕的基本尺寸,如最短的指示   可用屏幕区域的尺寸。具体来说,设备的   smallestWidth是屏幕可用高度的最短值   宽度(您也可以将其视为“最小可能宽度”)   屏幕)。

例如,您的手机屏幕尺寸等于480x800 dp。该器件的最小宽度将是这两者的最小值,即480dp。如果您旋转设备,最小值将保持不变 - 480dp。

如何使用最小宽度限定符?当你创建一个布局时,你总是希望有一个最小宽度,并且它的swill看起来很好。低于此最低限度,您的布局会受到挤压,看起来不太好。为了确保不会发生这种情况,当N为最小允许宽度时,您将其放在具有sw<N>dp限定符的文件夹中。

值得一提的是,因为最小宽度不取决于方向,所以您应该通过使用landport限定符自行处理横向和纵向方向。虽然这种方法有效,但很快就会处理不同的宽度和方向。为解决此问题,还有另一种称为响应式移动设计的方法。我建议阅读一系列文章"Deep dive into responsive mobile design"以便更好地理解。

<强>更新

从px计算dp的公式如下:

  

dp = px /(ppi / 160dp)

Nexus 7采用sw-600dp,因为所有计算均基于设备中编码的getResources().getDisplayMetrics().density值。这不是真正的价值,而是舍入值。对于Nexus 7(2013),实际值为323/160 = 2.01875。设备中编码的值为2,对应sw-600dp。这是一些像素丢失的地方。

答案 1 :(得分:-2)

sw600dp表示密度为600dp的最小屏幕宽度。但是让我告诉你,你需要更多,因为Nexus 7(2012)和Nexus 7(2013)都是7英寸平板电脑,但密度不同。您可以使用sw600dp添加hdpi或xhdpi,例如值-sw600dp-hdpi。对于手机执行相同的swXXXdp,但尽量不这样做,并使用像small,normal,large和xlarge这样的屏幕大小。 有关参考,请参阅Android official link