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

时间:2013-05-29 09:37:54

标签: android screen-size

我在两个非常不同的手机上测试我的应用程序:

Htc One X (running 4.1)
720x1280, density XHigh (320dpi)

Samnsung GT-S6500D running 2.3.6
320x480, density medium, (160dpi)

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

因为2.3没有考虑布局-sw320dp,我猜这需要layout-normal,它确实如此。

现在为什么大屏幕没有采用layout-sw720dp文件夹?它也属于layout-normal>>为什么呢?

我用

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

并构建target = level 15 (4.0.3)

2 个答案:

答案 0 :(得分:2)

获取屏幕分辨率并相应地转移它

    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);
            }

答案 1 :(得分:0)

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