Как передать разные данные в веб-сервис в соответствии с ScreenSize - PullRequest
2 голосов
/ 23 февраля 2012

Мне нужно передать различные данные в веб-сервис в соответствии с ScreenSize, например:

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, это происходит толькокогда происходит какое-либо событие .... Поскольку мне нужно показать изображения из веб-службы очень скоро, когда мое приложение запущено, любые идеи !!!

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

// Определить размер экрана

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();
    }
1 голос
/ 23 февраля 2012

Калай, я использовал этот код, чтобы установить макет на основе размера экрана, попробуйте этот способ может помочь вам

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