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;
            }
發佈了59 篇原創文章 · 獲贊 16 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章