2013年1月10日 星期四

[Android]UI Layout之座標AbsoluteLayout+圖示變化

在實作Layout之前,只用過DroidDraw這個JAVA寫成的loyout工具來做layout
雖然幫我完成碩論的專案跟工作練習的撥放器實作專案
但是在業界產品的UI是很重要的一環,沒有美美的UI雖然功能強大但不一定每個使用者都會買單,以撥放器為例:POWER AMP即是一個例子,不過它功能也是非常強大@@"。很多人無不痛下心刷卡買下這個APP,題外話。

UI Layout分成很多Layout類型:

線性LinearLayout
表格TableLayout
相對RelativeLayout
框架FrameLayout
座標AbsoluteLayout

本次主要說明座標Layout,所以主要使用AbsoluteLayout
底下我會加上一些註解,但千萬不要整個連註解都複製貼上,可能會出錯(還沒試過)


<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
//上面紅字部分為座標layout的宣告,沒標上AbsoluteLayout 無論你底下x軸跟y軸的座標如何指定都不會有任何效果,試過了,我一開始用相對RelativeLayout結果android:layout_x="703px" 
android:layout_y="160px" 無論我用dp或px都是顯示在右上角(其實應該是在右中)。
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
   
//這邊是我設定的元件 id,名稱為btn_back,這邊再費話一下,若宣告以後要在MainActivity裡面使用記得先去/gen/../R裡面的public static final class id確定一下是否有這個物件建立其中。
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_x="703px"//設定物件x軸座標
android:layout_y="160px"//設定物件y軸座標 
android:background="@drawable/back_selector">//這邊是你在drawable設定這個按鈕事件定義xml檔的名稱,當然後面的.xml不要打。

</AbsoluteLayout>


放在res裡面建立的drawable資料夾內,這邊若你的模擬器有特別的size可以建立特別size資料夾,像我要跑的是800x480,我會設定成drawable-800x480,同樣的layout資料夾則也要特別取名為layout-800x480
back_selector.xml的內容:




          android:drawable="@drawable/btb_normal" />
    android:state_pressed="true"
        android:drawable="@drawable/btb_select" />
    android:state_pressed="true"
        android:drawable="@drawable/btb_select" />
          android:drawable="@drawable/btb_select" />
          android:drawable="@drawable/btb_select" />


針對你的動作定義把想要顯示的圖片打出來,圖片則是跟back_selector.xml一樣放在一起(在drawable-800x480)裡面。


完工! 我知道下面這邊有偷懶到,我應該介紹一下什麼是 android:state_focused;什麼是android:state_pressed;什麼是android:state_selected才對,之後會補充!(奔)
Layout要全講完,天都要黑一邊了!
況且我只開始工作一個星期而已@@ Android界菜逼八一枚!








沒有留言:

張貼留言