android res

——a little +

Udacity课程截图:

尽量保持宽而浅的布局,完整层级不能超过十级

SIZE:

small
normal
large

density:

ldpi
hdpi
xhdpi
xxhdpi
xxxhdpi

res下部分目录命令

res/layout
res/layout-sw600dp
res/layout-sw720dp

Supporting Multiple Screen

http://developer.android.com/guide/practices/screens_support.html#ConfigurationExamples

上面三个文件夹
sw:smallest width

layout/activity_main.xml 对应一般的手机
layout-sw600dp/activity_main.xml sw大于等于600dp的设备
layout-sw720dp/activity_main.xml sw大于等于720dp的设备

文件们

  • layout-sw600dp / activity_main.xml
    多个Fragment拼成一个Activity(平板 tablet)

    • 一个fragment

      <fragment  android:id="@+id/fragment_forecast" android:name="com.example.android.sunshine.app.ForecastFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" tools:layout="@android:layout/list_content" />
      
    • 一个FrameLayout

      <FrameLayout  android:id="@+id/weather_detail_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="4" />
  • layout / activity_main.xml 一个Fragment(手机)

    • 一个fragment

      <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragment_forecast" android:name="com.example.android.sunshine.app.ForecastFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" tools:context="com.example.android.sunshine.app.ForecastFragment" tools:layout="@android:layout/list_content" />
  • MainActivity中

     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            boolean mTwoPane;
            //重要判断是否含有详情部分(tablet)
            if(findViewById(R.id.weather_detail_container) != null){
                mTwoPane = true;
                if(savedInstanceState == null)
                { //如果savedInstanceState为null,则利用FragmentManager
                    getSupportFragmentManager().beginTransaction().replace(R.id.weather_detail_container , new DetailFragment() , DETAILFRAGMENT_TAG).commit();
                }
            }
            else{
                mTwoPane = false;
            }

你可能感兴趣的:(android,res,sw,multiScree)