2

通過不同DATAS到web服務,我需要根據屏幕大小 不同DATAS傳遞到Web服務如:如何根據屏幕大小

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的圖像,所以有任何想法!

回答

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(); 
    } 
+0

@帕德瑪庫馬爾:我試過這個但沒有工作的人,阿維庫馬爾的答案工作 – 2012-02-23 12:48:18

+0

@在設備或模擬器中運行的kalai RU。如果哪個設備? – 2012-02-23 12:53:26

+1

如果使用硬編碼的值不會是通用構建。 – 2012-02-23 12:55:22

1

卡萊我用這個代碼來設置佈局在屏幕大小的基礎上嘗試這種方法可以幫助你

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)); 
+0

@ AviKumar:完美......聽起來很棒的男人..謝謝你..但我需要知道哪些是X大,中,小屏幕 – 2012-02-23 12:46:37

+0

你見過這個卡萊http://developer.android.com/guide/practices/screens_support.html – 2012-02-23 12:51:31

+0

@阿維:古德男人我明白 – 2012-02-23 13:47:17

相關問題