如何根据屏幕大小将不同的数据传递给Web服务

时间:2012-02-23 12:22:27

标签: android web-services android-layout android-intent android-emulator

我需要根据ScreenSize将不同的数据传递给webservice 例如:

if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
        {  

        DeviceType=2;

     }
    else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL)
    {     

        DeviceType=1;
    } 
    else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) 
    {     
            DeviceType=1;
    }
    else
    {
        DeviceType=2;
     }

我这样做但很遗憾我没有得到正确的值,我将DeviceType设为0, 只有当任何事件触发时才会发生这种情况....因为我需要在我的应用程序启动时很快显示来自webservice的图像,任何想法!!!

2 个答案:

答案 0 :(得分:1)

Kalai我使用此代码根据屏幕大小设置布局尝试这种方式可能会对您有所帮助

Display display = this.getWindowManager().getDefaultDisplay();

          if(display.getHeight()==480&&display.getWidth()==320){
              setContentView(new Grapic_m(this));

          }

          else if(display.getHeight()==800&&display.getWidth()==480){
             Grapic g=new Grapic(this);
          setContentView(g);

              }             
          else if(display.getHeight()==320&&display.getWidth()==240){

              setContentView(new Grapic_s(this));

答案 1 :(得分:1)

//确定屏幕尺寸

if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {     
    Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();

}
else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {     
    Toast.makeText(this, "Normal sized screen" , Toast.LENGTH_LONG).show();

} 
else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {     
    Toast.makeText(this, "Small sized screen" , Toast.LENGTH_LONG).show();
}
else {
    Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}

//确定密度

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int density = metrics.densityDpi;

    if (density==DisplayMetrics.DENSITY_HIGH) {
        Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
    }
    else if (density==DisplayMetrics.DENSITY_MEDIUM) {
        Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
    }
    else if (density==DisplayMetrics.DENSITY_LOW) {
        Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
    }
    else {
        Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW.  Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
    }