2012年3月16日 星期五

Androiday 1 - hello android ~ WTF

在範例Hello world中  追蹤  /res/layout/main.xml   底下的宣告

標籤裡面夾的宣告叫做LinearLayout ,在layout 底下的main.xml 主要是用來做畫面佈局

而LinearLayout 又只是Android當中的其中一種方式Layout 畫面,所以我很好奇有幾種

Layout 方式可以在main.xml 中使用,但是我又去找資料:

http://developer.android.com/training/improving-layouts/optimizing-layout.html

裡面提到Layout 這個模型好像是屬於 widget 底下的東西,可是一開始在hello world.java中

也沒有宣告這種類別進來

package com.example.android.hellowworld ;   建立絕對參考路徑  專案用
import android.app.Activity ;                        
import android.os.Bundle ;

所以要了解 Layout 以外的模型,要去找widget 資料來看
同時也意味著,在/res 底下的很多東西,實際上要宣告
可以不用透過  /src/XXXXX.java  底下的code
我推測應該是直接在compiler的時候,系統可以直接去Android2.3.3/android.jar  直接去找
不需要額外作其他動作,也就是說,在xml檔中,可以直接去找要的資源
不需要顧慮太多引用的問題,起碼這個範例中是這樣


public class

LinearLayout

extends ViewGroup
java.lang.Object
   ↳android.view.View
   ↳android.view.ViewGroup
   ↳android.widget.LinearLayout
繼承 ViewGroup      http://developer.android.com/reference/android/widget/LinearLayout.html

剛剛又爬了一下文章http://developer.android.com/resources/tutorials/views/index.html

在 Hello view 中  清楚地了解到   LinearLayout 以外還有其他種 官方建議Layouts

在Layouts  部分有 六種

1.Linear Layout
2.Relative Layout
3.Table Layout
4.Grid View
5.Tab Layout
6.Lsit View
-------------
Widgets & Other Views   ;  widgets 加上其他非標準的版面Layout,有8種
1. Date Picker
2. Time Picker
3. Form Stuff
4. Spinner
5. Auto Complete
6. Gallery
7. Google Map View
8. Web View

-----------------目錄結構--------------------

1111
R.java這個東西真的很奇妙,把所以有xml 資源跟宣告檔打包好,再生成一個R.Java的資源檔
裡面內容都是變數跟記憶體的宣告,Android 是透過這種方式進行打包跟取用工程
最後,居然還可以在/src裡面直接在helloworld.java中取用
public class HelloWorld extends Activity {
    @Override                                                                    ;不知道@ Override 用來做啥 覆蓋 ??
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
       }
}                
R.layout.main  在 R資源底下有一個layout的目錄底下有一個main 參數或是方法,可以當作setContentView()  的傳入參數使用  . . ..    真是深奧

沒有留言:

張貼留言