2013-11-02 154 views
0

我有我真的無法最近解決的一個問題..安卓:屏幕尺寸支持8個和7英寸的屏幕

我做了,我在我的三星Galaxy Note 8.0平板電腦運行一個簡單的應用程序..我已經將佈局設置爲在某個地方放置一些文本視圖。我使用dp爲margin和sp爲文本大小編寫了xml代碼。寬度和高度佈局設置爲wrapcontent。但是當我在朋友Samsung Galaxy Tab 2 7.0中運行它時,佈局與我在設備中看到的不匹配。當我嘗試在10英寸模擬器中運行它時,會發生同樣的情況。

我使用佈局sw600dp我的佈局文件夾..

爲什麼我的屏幕布局是這樣呢?我雖然通過佈局sw600dp佈局理應自行調節。還是我錯了有關呢?

我已經閱讀了有關不同屏幕尺寸的支持,到目前爲止,我發現使用佈局sw600dp是很好的解決Android文檔..

我已經使用檢查設備DPI:

Display display = getWindowManager().getDefaultDisplay(); 
      DisplayMetrics outMetrics = new DisplayMetrics(); 
      display.getMetrics(outMetrics); 

      float density = getResources().getDisplayMetrics().density; 
      float dpHeight = outMetrics.heightPixels/density; 
      float dpWidth = outMetrics.widthPixels/density; 

回答

0

每個設備都有不同像素比例,不同的dpi,不同的屏幕尺寸等等。去這個鏈接,閱讀它,你會知道如何管理不同的設備佈局。

Android - Supporting Multiple Screen

+0

我已經讀了幾次..我的理解是我需要爲不同的尺寸提供不同的佈局..但是我真的需要爲7和8英寸的屏幕提供不同的佈局嗎?在我的xml中,我使用layout_margin和100dp(示例).. – iwalyfa

+0

@iwalyfa - 一切都很重要,檢查設備的dpi,如果它們不同,那麼您需要不同的佈局文件夾,檢查像素比例,所有關於android佈局的一切都很重要。 –

+0

我已經編輯我的帖子..我已經檢查設備的dpi ..我需要不同的佈局在我的情況?當我想到它,這意味着我需要提供大量的佈局,以適應不同的屏幕尺寸。 – iwalyfa

0

如果你想查看屏幕寸大小,當應用開始,你可以用以下兩種方法計算英寸,但我覺得第二個是更精確。

public static float getScreenInchSizeByDensityDpi(Context context) { 
    DisplayMetrics dm = context.getResources().getDisplayMetrics(); 
    double x = Math.pow((double)dm.widthPixels/(double)dm.densityDpi, 2); 
    double y = Math.pow((double)dm.heightPixels/(double)dm.densityDpi, 2); 
    double screenInches = Math.sqrt(x + y); 

    return (float) screenInches; 
} 

public static float getScreenInchSizeByXYDpi(Context context) { 
    DisplayMetrics dm = context.getResources().getDisplayMetrics(); 
    double x = Math.pow((double)dm.widthPixels/(double)dm.xdpi, 2); 
    double y = Math.pow((double)dm.heightPixels/(double)dm.ydpi, 2); 
    double screenInches = Math.sqrt(x + y); 

    return (float) screenInches; 
}