編輯:高級開發
之前的代碼如下:
XML代碼 收藏代碼
1. < ?XML version="1.0" encoding="utf-8"?>
2. < RelativeLayout
3. XMLns:android="http://schemas.android.com/apk/res/android"
4. android:layout_width="fill_parent"
5. android:layout_height="fill_parent"
6. android:background="@color/background">
7. < ImageVIEw
8. android:id="@+id/home_iv1"
9. android:layout_width="wrap_content"
10. android:layout_height="wrap_content"
11. android:paddingTop="15dip"
12. android:layout_centerHorizontal="true"
13. android:src="@drawable/home"
14. />
15. < Button
16. android:id="@+id/home_bt1"
17. android:layout_width="wrap_content"
18. android:layout_height="wrap_content"
19. android:layout_centerHorizontal="true"
20. android:layout_below="@id/home_iv1"
21. android:layout_marginTop="15dip"
22. android:background="@drawable/selector"
23. android:gravity="center"
24. android:text="@string/home_b1"
25. />
26. ........
27. < Button
28. android:id="@+id/home_bt5"
29. android:layout_width="wrap_content"
30. android:layout_height="wrap_content"
31. android:layout_centerHorizontal="true"
32. android:layout_below="@id/home_bt4"
33. android:layout_marginTop="15dip"
34. android:background="@drawable/selector"
35. android:gravity="center"
36. android:text="@string/home_b5"
37. />
38. < /RelativeLayout>
< ?XML version="1.0" encoding="utf-8"?>
< RelativeLayout
XMLns:android="http://schemas.android.com/apk/res/android"
接上頁
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background">
< ImageVIEw
android:id="@+id/home_iv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="15dip"
android:layout_centerHorizontal="true"
android:src="@drawable/home"
/>
< Button
android:id="@+id/home_bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/home_iv1"
android:layout_marginTop="15dip"
android:background="@drawable/selector"
android:gravity="center"
android:text="@string/home_b1"
/>
........
< Button
android:id="@+id/home_bt5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/home_bt4"
android:layout_marginTop="15dip"
android:background="@drawable/selector"
android:gravity="center"
android:text="@string/home_b5"
/>
< /RelativeLayout>
我們可以看到這五個按鈕除了ID和text、還有below(因為用的相對布局,如果用線性布局這塊也可以相同)其他的都一樣,那我們能不能簡化一下這些重復的代碼呢?可以,用style。
先看看用style怎麼設置這些重復的屬性:
在values下新建style.XML
XML代碼 收藏代碼
1. < ?XML version="1.0" encoding="utf-8"?>
2. < resources>
3. < style name="homebtn" >
4. < item name="android:layout_width">wrap_content< /item>
5. < item name="android:layout_height">wrap_content< /item>
接上頁
6. < item name="android:textSize">20sp< /item>
7. < item name="android:textColor">#FFFFffff< /item>
8. < item name="android:gravity">center< /item>
9. < item name="android:layout_marginTop">15dip< /item>
10. < item name="android:layout_centerHorizontal">true< /item>
11. < item name="android:background">@drawable/selector< /item>
12. < /style>
13. < /resources>
< ?XML version="1.0" encoding="utf-8"?>
< resources>
< style name="homebtn" >
< item name="android:layout_width">wrap_content< /item>
< item name="android:layout_height">wrap_content< /item>
< item name="android:textSize">20sp< /item>
< item name="android:textColor">#FFFFffff< /item>
< item name="android:gravity">center< /item>
< item name="android:layout_marginTop">15dip< /item>
< item name="android:layout_centerHorizontal">true< /item>
< item name="android:background">@drawable/selector< /item>
< /style>
< /resources>
在回到我們的布局文件在按鈕中設置style="@style/homebtn"就可以了
XML代碼 收藏代碼
1. < ?XML version="1.0" encoding="utf-8"?>
2. < RelativeLayout
3. XMLns:android="http://schemas.android.com/apk/res/android"
4. android:layout_width="fill_parent"
5. android:layout_height="fill_parent"
6. android:background="@color/background">
7. < ImageVIEw
8. android:id="@+id/home_iv1"
9. android:layout_width="wrap_content"
10. android:layout_height="wrap_content"
11. android:paddingTop="15dip"
接上頁
12. android:layout_centerHorizontal="true"
13. android:src="@drawable/home"
14. />
15. < Button
16. android:id="@+id/home_bt1"
17. style="@style/homebtn"
18. android:layout_below="@id/home_iv1"
19. android:text="@string/home_b1"
20. />
21. .......
22. < Button
23. android:id="@+id/home_bt5"
24. style="@style/homebtn"
25. android:layout_below="@id/home_bt4"
26. android:text="@string/home_b5"
27. />
28. < /RelativeLayout>
< ?XML version="1.0" encoding="utf-8"?>
< RelativeLayout
XMLns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background">
< ImageVIEw
android:id="@+id/home_iv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="15dip"
android:layout_centerHorizontal="true"
android:src="@drawable/home"
/>
< Button
android:id="@+id/home_bt1"
style="@style/homebtn"
android:layout_below="@id/home_iv1"
android:text="@string/home_b1"
/>
.......
< Button
android:id="@+id/home_bt5"
style="@style/homebtn"
android:layout_below="@id/home_bt4"
android:text="@string/home_b5"
/>
< /RelativeLayout>
其實在style中可以定義多個樣式給不同的組件使用,現在我們把ImageVIEw也用樣式定義一下吧:
XML代碼 收藏代碼
1. < ?XML version="1.0" encoding="utf-8"?>
2. < resources>
3. < style name="homebtn" >
接上頁
4. < item name="android:layout_width">wrap_content< /item>
5. < item name="android:layout_height">wrap_content< /item>
6. < item name="android:textSize">20sp< /item>
7. < item name="android:textColor">#FFFFffff< /item>
8. < item name="android:gravity">center< /item>
9. < item name="android:layout_marginTop">15dip< /item>
10. < item name="android:layout_centerHorizontal">true< /item>
11. < item name="android:background">@drawable/selector< /item>
12. < /style>
13. < style name="homeiv">
14. < item name="android:layout_width">wrap_content< /item>
15. < item name="android:layout_height">wrap_content< /item>
16. < item name="android:layout_marginTop">15dip< /item>
17. < item name="android:layout_centerHorizontal">true< /item>
18. < /style>
19. < /resources>
< ?XML version="1.0" encoding="utf-8"?>
< resources>
< style name="homebtn" >
< item name="android:layout_width">wrap_content< /item>
< item name="android:layout_height">wrap_content< /item>
< item name="android:textSize">20sp< /item>
< item name="android:textColor">#FFFFffff< /item>
< item name="android:gravity">center< /item>
< item name="android:layout_marginTop">15dip< /item>
< item name="android:layout_centerHorizontal">true< /item>
< item name="android:background">@drawable/selector< /item>
< /style>
< style name="homeiv">
< item name="android:layout_width">wrap_content< /item>
接上頁
< item name="android:layout_height">wrap_content< /item>
< item name="android:layout_marginTop">15dip< /item>
< item name="android:layout_centerHorizontal">true< /item>
< /style>
< /resources>
好了介紹到這裡也就完了。等。。等一下這裡好像出現了和剛才的布局文件一樣的問題,重復的代碼!(我是不是有重復癖,看見重復就想消滅。。)
這裡的重復能不能消滅呢,這也是可以的。在style下還有一個個有用的屬性:
parent ? 可選,一些在自定義的style中沒有指定的屬性會繼承parent style中的值。parent可以是android預定義的resource,也可以是自己定義的style。
現在看看使用parent之後的樣子:
XML代碼 收藏代碼
1. < ?XML version="1.0" encoding="utf-8"?>
2. < resources>
3. < style name="homeiv">
4. < item name="android:layout_width">wrap_content< /item>
5. < item name="android:layout_height">wrap_content< /item>
6. < item name="android:layout_marginTop">15dip< /item>
7. < item name="android:layout_centerHorizontal">true< /item>
8. < item name="android:background">@drawable/home< /item>
9. < /style>
10. < style name="homebtn" parent="@style/homeiv">
11. < item name="android:textSize">20sp< /item>
12. < item name="android:textColor">#FFFFffff< /item>
13. < item name="android:gravity">center< /item>
14. < item name="android:background">@drawable/selector< /item>
15. < /style>
16. < /resources>
< ?XML version="1.0" encoding="utf-8"?>
< resources>
< style name="homeiv">
< item name="android:layout_width">wrap_content< /item>
< item name="android:layout_height">wrap_content< /item>
接上頁
< item name="android:layout_marginTop">15dip< /item>
< item name="android:layout_centerHorizontal">true< /item>
< item name="android:background">@drawable/home< /item>
< /style>
< style name="homebtn" parent="@style/homeiv">
< item name="android:textSize">20sp< /item>
< item name="android:textColor">#FFFFffff< /item>
< item name="android:gravity">center< /item>
< item name="android:background">@drawable/selector< /item>
< /style>
< /resources>
當然style最主要的作用不是用來精簡代碼,而是讓開發者自定義更個性的效果,不過這個附加的作用也不錯。
想要快速獲取android手機的ROOT權限嗎?也許因為ROOT教程太復雜,也許因為不會進工程模式,讓我們在使用android手機時感覺像是開別人的車一樣,總不那麼順手
Google手機操作系統android今天傳出好消息,該平台的軟件數量已達到10072款,突破1萬關口。9月8日據AndroLib網站的統計數字顯示,截至今天,andr
移動開發已經毫無爭議地成為軟件領域的發展趨勢,嶄新的領域和模式不僅僅為各個廠商,也會普通的開發者打開了一扇阿裡巴巴之門。本文摘取自台灣知名技術專家,台灣公認的“OO教父
我們已經介紹了android用戶界面設計模板Dashboard,其實在Dashboard上Andriod用戶界面設計所制作的最初版本為OmniGraffle模板,現在已