Android layout 使用可用的屏幕宽度限定符支持3种不同的屏幕尺寸<;N>;数据处理
布局自动开关对于我的2台设备的2个布局工作正常,但对于第三台设备则不行 我有两部Android手机(我的假设是ppi和dpi在这里是一样的)Android layout 使用可用的屏幕宽度限定符支持3种不同的屏幕尺寸<;N>;数据处理,android-layout,screen-size,android,sony-xperia,Android Layout,Screen Size,Android,Sony Xperia,布局自动开关对于我的2台设备的2个布局工作正常,但对于第三台设备则不行 我有两部Android手机(我的假设是ppi和dpi在这里是一样的) HTC Desire-(480x800;252 dpi;安卓2.2) HTC Sensation-长边>600dp(540x960像素;256 dpi;安卓4.0.4) 索尼Xperia Z-长边>690dp(1080x1920像素;443dpi;安卓4.2.2) 因此,我创建了以下布局来处理3部手机的屏幕(我没有使用最小可用宽度swdp限定符,因为我
- HTC Desire-(480x800;252 dpi;安卓2.2)
- HTC Sensation-长边>600dp(540x960像素;256 dpi;安卓4.0.4)
- 索尼Xperia Z-长边>690dp(1080x1920像素;443dpi;安卓4.2.2)
swdp
限定符,因为我的应用程序只支持横向视图;因此,我只关心屏幕的较长尺寸)
/res/layout/main.xml
布局正确显示HTC Desire,而/res/layout-w600dp/main.xml
显示HTC Sensation,但没有显示Xperia Z(/res/layout/main.xml
而不是/res/layout-w690dp/main.xml
)
我错过什么了吗
我的应用程序的目标是安卓4.0(所以我只看安卓3.2及以上版本的屏幕大小限定符)
我想在运行时检查屏幕大小,然后选择适当的布局,但在这种情况下,将使用限定符,不是吗
目前我的manifest.xml:
...
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="14" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens= "true"
android:anyDensity="true" />
...
当我运行我的应用程序时,HTC Sensation仍然显示/res/layout-w600dp/main.xml
布局,而Xperia Z仍然显示/res/layout/main.xml
发生了什么事?我在Xperia Z上使用了w500dp land作为景观的屏幕大小限定符。这至少是可行的,而w600dp land被忽略了。检查设备是否有意义后:
Xperia Z的dp尺寸为360*592,根据可以检查Xperia Z的dp乘数吗?谢谢@Pork,我已经验证了手机屏幕的尺寸并更新了我的问题。你知道我怎么解决这个问题吗??
...
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="14" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens= "true"
android:anyDensity="true" />
...
/res/layout/main.xml
/res/layout-w600dp/main.xml