2012-07-10 128 views
0

我想以編程方式設計佈局,這意味着不需要根據項目要求使用xml文件。 但是編程使用的術語與xml文件完全不同。它們是任何有用的教程,以編程方式學習,這意味着沒有xml文件。引導我!Android中的用戶界面設計

+0

嘗試在google中搜索[如何以編程方式創建佈局](http://www.google.com/search?q=android+create+layout+programatically&ie=utf-8&oe=utf-8&aq=t) – Praveenkumar 2012-07-10 10:26:06

+0

我試過了,但它沒有完整的指導, – sivanesan1 2012-07-10 10:29:48

+0

更具體,你在找什麼。如你所見,那裏有很多教程。 – Ran 2012-07-10 10:31:00

回答

0

您可以創建任何視圖你想

  • 線性佈局

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
         LinearLayout.LayoutParams.FILL_PARENT, 
         LinearLayout.LayoutParams.WRAP_CONTENT); 
    
  • 文本視圖

    final TextView tv = new TextView(this); 
        tv.setBackgroundColor(0xFFFF00FF); 
        tv.setTextColor(0xFF000000); 
        tv.setTypeface(null, Typeface.BOLD); 
        tv.setText("Where is Fred?"); 
        tv.setGravity(Gravity.CENTER_HORIZONTAL); 
    

和別的。

Source

+0

非常感謝你! – sivanesan1 2012-07-10 10:49:19

+0

我有另一個小的查詢,,對於文本顏色,設置背景顏色你提到像0xFFFF00FF。這種顏色的格式是什麼(十六進制格式),這種格式有多少種顏色可供選擇,以及如何找到所有顏色代碼,如0xFF000000 – sivanesan1 2012-07-10 10:54:00

+0

請參考維基頁面 - http://en.wikipedia.org/wiki/Hexadecimal_color – 2012-07-10 10:58:22

0

我建議你花一些時間來學習的View類及其流行子類,如LinearLayoutRelativeLayout,等等。 (另外,花一點時間看Drawables。)

當你使用XML創建一個佈局時,你使用XML來定義一個層次爲View的對象,它在運行時被「充氣」成一個real層次結構View XML佈局文件描述的對象。例如,您的第一個XML佈局文件可能是一個簡單的LinearLayout包含TextView(注意,我簡化它簡潔):

<LinearLayout ... > 
    <TextView ... /> 
</LinearLayout> 

在你Activity你可以使用使用setContentView()此佈局。

所有這些XML文件做的是提供規範,如果你喜歡,關於該系統需要建立(或膨脹)爲您的View結構。最終的結果是,將會有一個真實的LinearLayout對象(它是View的子類),它具有子對象TextView(同樣是View的子類)以及合適的佈局參數。

上面做編程,你可能會做這樣的事情(再次簡化)(通過創建對象的實例,並使用他們的方法,而不是從XML充氣IE):

LinearLayout container = new LinearLayout(this); 
TextView tv = new TextView(this); 
tv.setText("hello"); 
container.addChild(tv); // Simple example - usually you'd specify layout parameters 
setContentView(container); 

最基本的一點,我使用非常簡單的術語來說,佈局XML文件可以被認爲是一種'腳本',您可以用它來告訴系統如何創建Views的層次結構。通過編程創建View對象實例並在其上調用適當的方法,可以創建完全相同的結果。無論採用哪條路線,最終結果都是一樣的:內存中的一堆代表View層次結構的對象。

您會發現XML佈局屬性名稱不一定與相應的方法名稱相同,但可以使用相關API文檔查看給定方法的相應XML屬性字符串。例如,LinearLayout的API文檔詳細介紹了所有的方法以及XML屬性。