无法区分两种不同的屏幕尺寸



我正在两台不同的手机上测试我的应用程序:

Htc One X (running 4.1)
720x1280, density XHigh (320dpi)
Samnsung GT-S6500D running 2.3.6
320x480, density medium, (160dpi)

现在,我如何确保每个设备使用不同的布局文件夹?我创造了layout-sw720dp,layout-sw600dp,layout-normal,…

因为2.3没有考虑layout-sw320dp,我猜它会考虑layout-normal,它做得很好。

为什么大屏幕不显示layout-sw720dp文件夹?它也属于layout-normal>>为什么?

我使用

    android:minSdkVersion="10"
    android:targetSdkVersion="17" 

和构建target = level 15 (4.0.3)

获取屏幕分辨率并相应地调整

    private final float LOW_LEVEL=0.75f;
    private final float MEDIUM_LEVEL=1.0f;
    private final float HIGH_LEVEL=1.5f;
    float level = getApplicationContext().getResources().getDisplayMetrics().density;
            if(level == LOW_LEVEL){
                    setContentView(R.layout.activity_login);
            }else if(level == MEDIUM_LEVEL){
                    //do smoothing here
                    setContentView(R.layout.activity_login);
            }else if(level == HIGH_LEVEL){
                    //do something here
                    setContentView(R.layout.activity_login);
            }else {
                    //do something here
                    setContentView(R.layout.activity_logins);
            }

我认为问题是你使用了两种不同的布局分类。Normal被用作广义屏幕密度,为什么3.2以来可用的布局是基于最小屏幕尺寸的。尝试删除正常密度布局,看看会发生什么。当然,你也可以按照上面的建议,从代码中膨胀出不同的布局。

最新更新