我有一个页面上面有若干个button样式都是相同的 在屏幕居中 25号白色字
之前的代码如下:
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代码 收藏代码
< ?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>
< ?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代码 收藏代码
< ?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>
< ?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代码 收藏代码
< ?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>
< ?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代码 收藏代码
< ?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>
< ?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的layout布局种类
介绍Android五中布局的一个示例代码.
android提供的五种布局有时候不能满足实际项目的需要,所以需要自定义布局。这是一个自定义Layout布局
Android布局文件layout.xml的一些属性值 android开发必看文档
主要是针对android初学者对于android的layout布局不是很清楚的人
Android布局文件的属性值解析说明: 1 android:id [为控件指定相应的ID] 2 android:text [指定控件当中显示的文字 需要注意的是 这里尽量使用strings xml文件当中的字符串] 3 android:gravity [指定View组件的对齐...
在做demo的时候我们或许只会用到一个layout布局,但是在现实的app开发中会在listView中嵌套多个layout布局文件,本demo就是实现多个布局的listView,但是要特别注意的是Listview中嵌入EditText时获取editText的值的...
android的layout布局种类.pdf
Android使用文本输入布局TextInputLayout的代码例子。用于演示文本输入布局TextInputLayout和文本输入编辑框TextInputEditText对编辑框的功能增强。
包含所有的Android Layout的样式布局和属性讲解
android layout布局分析与优化 android layout布局分析与优化
ConstraintLayout的练习布局文件layout,里面有十几种常用的布局文件,讲解ConstraintLayout的属性已经使用
Android_如何置底一个View(附_前置声明layout布局文件中的资源ID)
微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小...
我们是给这些个Activity布局文件都统一加上一样的布局代码,但是维护起来很麻烦,修改不方便,有没有一种类似于编程语言的include语法呢?答案是有的,但是sdk的demo并没有说出使用方法,但这并不说明不好使用,其实...
文档介绍了Android学习指南Layout前言,(1) LinearLayout,Android官方LinearLayout Demo,(2) RelativeLayout,官方的RelativeLayout Demo,(3) TableLayout,官方的TableLayout Demo
本文主要介绍Android Layout XML 一些属性,在Android开发过程中布局文件大家肯定都会用到,在这里对Layout XML 进行详解,希望能对大家有所帮助
Android源代码 一个主Layout文件中,包含2个Fragment段,演示复合界面的实现
本源代码将研究学习微信小程序的FlexLayout布局实例,微信小程序界面设计实例,是一种流布局的实现例子,而不是大家熟悉的盒子式布局,据说即使需要深层的嵌套,FlexLayout布局的响应速度也不会超过1ms,可谓是非常...
android 10.布局(Layout)在Android软件开发上的重要角色