2012-06-18 61 views
0

我被賦予了一項任務,使用一組佈局和> = 1024x800的分辨率爲1024x800分辨率的設備提供分辨率爲<的設備。按設備分辨率定義xml佈局

下面是我正在使用的一些代碼。關於_isTablet標誌應用程序可以決定應該使用哪個佈局。

你是否認爲這是一個不錯的策略還是應該考慮實現設計佈局爲基礎的解決隔離另一個功能?謝謝。

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    final int height = display.getHeight(); 
    final int width = display.getWidth(); 

    _leadingSideResolution = Math.max(height, width); 
    if (_leadingSideResolution <= HANDSET_LAYOUT_RESOLUTION) { 
      _isTablet = false; 
    } else if(_leadingSideResolution > HANDSET_LAYOUT_RESOLUTION 
       && _leadingSideResolution <= TABLET_LAYOUT_RESOLUTION) { 
      _isTablet = true; 
    } 

回答

0

嘗試此代碼來檢查該裝置是否是片劑或不

public boolean onTablet() 
    { 
    int intScreenSize = context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; 

    return (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE) // LARGE 
    || (intScreenSize == Configuration.SCREENLAYOUT_SIZE_LARGE + 1); // Configuration.SCREENLAYOUT_SIZE_XLARGE 
    } 



    if(!onTablet()) 
    { 
     setContentView(R.layout.not_tablet_layout); 
    } 
    else 
    { 
     setContentView(R.layout.tablet_layout); 
    } 
0

對於支持機器人移動設備和片劑,機器人提供了一個非常簡單的解決方案。你可以得到它:http://developer.android.com/guide/practices/screens_support.html

從這請閱讀:

1. How to Support Multiple Screen 
2. Designing alternative layouts and drawables 
3. Declaring Tablet Layouts for Android 3.2 
4. Configuration examples 
+0

我很抱歉,但 - 你讀過我的問題?沒有任何東西可以明確如何根據分辨率值區分佈局。 – user1462299