除了布局,android中xml的其他用法
2016-04-25 15:48
627 查看
对于android新手来说,对xml的布局肯定是在熟悉不过。所以我们今天不说这个,我们来谈谈xml在android中除了布局,还有什么其他的用法?我直接总结一下有哪些其他用法:首先我们来看在drawable这个文件夹中有哪些用法。
要想看有哪些方法,我们可以借助提示工具,看有哪些标签。
1.selector这个对于初学者还是比较难以理解。selector就是状态列表(StateList) 它分为两种,一种Color-Selector 和Drawable-Selector。顾名思义一种是随着焦点变化颜色变化,一种是随着焦点变化图片变化
Button_style.xml
上段代码我们可以在button中引用
2.layer-list这个标签就把他理解为ps里面的图层就好,里面可以内嵌shape等标签,其中标签代表一个层
3.shape顾名思义就是可以用来形成图形的标签,如下代码,在android:shape里面有几个选项oval,line,rectangle等,其他有关的标签在代码里面提到
我们现在来分析一下以下代码,直接看代码,该代码实现的是只给图形加底边框,这种实现方式很重要,
下面我们来看一看xmll在values中attr.xml中的应用如下代码,主要用来自定义一些属性的
array.xml
我们通过这样的定义可以从资源里面获取数组,如何获取自行百度
color.xml
这里用过来定义颜色的key value值,这个有时候非常有用,因为颜色代码容易忘,而对应的名字就好记多了
dimens.xml
这个是用来定义具体的大小宽度的
string.xml
里面是用来定义常用字符串
最后就是比较重要的styles.xml了
这个可以自定义自己的主题,一般是通过继承andorid定义过的主题,然后重写其中的属性,用这个一般是因为android自带的主题并不能满足项目要求,所以要进行自定义,代码如下:
在andorid代码这么去引用
要想看有哪些方法,我们可以借助提示工具,看有哪些标签。
1.selector这个对于初学者还是比较难以理解。selector就是状态列表(StateList) 它分为两种,一种Color-Selector 和Drawable-Selector。顾名思义一种是随着焦点变化颜色变化,一种是随着焦点变化图片变化
Button_style.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="#ffffff" android:state_pressed="true" /><!-- pressed --> <item android:color="#000000" /> <!-- default --> <item android:state_focused="true" android:color="#cccccc"/> <!-- focused --> </selector>
上段代码我们可以在button中引用
Button android:id="@+id/bt_about" style="@style/Button_style" android:background="@drawable/button_selector" android:layout_width="250dp" android:layout_height="50dp" android:layout_margin="5dp" android:textColor="@color/test_color_selector" android:text="@string/about" />
2.layer-list这个标签就把他理解为ps里面的图层就好,里面可以内嵌shape等标签,其中标签代表一个层
3.shape顾名思义就是可以用来形成图形的标签,如下代码,在android:shape里面有几个选项oval,line,rectangle等,其他有关的标签在代码里面提到
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- rectangle表示为矩形 --> <!-- 填充的颜色 --> <solid android:color="@color/blue" /> <!-- 边框的颜色和粗细 --> <stroke android:width="1dp" android:color="@color/blue" /> <!-- android:radius 圆角的半径 --> <corners android:radius="2dp" /> </shape>
我们现在来分析一下以下代码,直接看代码,该代码实现的是只给图形加底边框,这种实现方式很重要,
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 连框颜色值 --> <item> <shape> <solid android:color="#ffffff" /> </shape> </item> <!-- 主体背景颜色值 ,这里是第二图层,将会覆盖前面的图层,如果我们让它bottom=15dp,底部的图层就将会露出15dp此时边框就出来了--> <item android:bottom="15dp"> <shape> <solid android:color="#000000" /> </shape> </item> </layer-list>
下面我们来看一看xmll在values中attr.xml中的应用如下代码,主要用来自定义一些属性的
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="wheelview"> <attr name="gravity"> <enum name="center" value="17"/> <enum name="left" value="3"/> <enum name="right" value="5"/> </attr> <attr name="textSize" format="dimension"/> <attr name="textColorOut" format="color"/> <attr name="textColorCenter" format="color"/> <attr name="dividerColor" format="color"/> </declare-styleable> <declare-styleable name="TopBarView"> <attr name="fRightView" format="reference"></attr> <attr name="sRightView" format="reference"></attr> <attr name="leftView" format="reference"></attr> </declare-styleable> </resources>
array.xml
我们通过这样的定义可以从资源里面获取数组,如何获取自行百度
<? xml version = "1.0" encoding = "UTF-8" ?> < resources > < string-array name = "citys" > < item > 北京 </ item > < item > 天津 </ item > < item > 上海 </ item > < item > 重庆 </ item > </ string-array > </ resources >
color.xml
这里用过来定义颜色的key value值,这个有时候非常有用,因为颜色代码容易忘,而对应的名字就好记多了
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#5c6ab8</color> <color name="colorAccent">#FF4081</color> <color name="colorPrimaryWeather">#5bdaff</color> <color name="colorPrimaryDarkWeather">#49aecc</color> </resources>
dimens.xml
这个是用来定义具体的大小宽度的
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="nav_header_vertical_spacing">16dp</dimen> <dimen name="nav_header_height">160dp</dimen> </resources>
string.xml
里面是用来定义常用字符串
<resources> <string name="app_name">Icalendar</string> <string name="navigation_drawer_open">Open navigation drawer</string> <string name="navigation_drawer_close">Close navigation drawer</string> </resources>
最后就是比较重要的styles.xml了
这个可以自定义自己的主题,一般是通过继承andorid定义过的主题,然后重写其中的属性,用这个一般是因为android自带的主题并不能满足项目要求,所以要进行自定义,代码如下:
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/calendar_bg</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="WeatherToolBarTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimaryWeather</item> <item name="colorPrimaryDark">@color/colorPrimaryDarkWeather</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="OneToolBarTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimaryOne</item> <item name="colorPrimaryDark">@color/colorPrimaryDarkOne</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
在andorid代码这么去引用
style="@style/xxx"
相关文章推荐
- Android ProgressDialog 有时莫名其妙无法显示的问题
- Android中四大组件
- Android:去掉默认的标题bar
- android中不小心使用静态变量会导致内存泄露
- 全面介绍Android的MVVM框架 - 数据绑定
- android 状态栏、标题栏、屏幕高度
- Android RecyclerView通用适配器
- Java/Android单例模式的简单理解
- android——adb logcat常用命令总结
- 从开发者角度解析 Android N 新特性!
- 安卓开发选取城市列表
- Android使用Popupwindow实现悬浮菜单功能
- Android布局文件layout.xml的一些属性值
- Android模拟HOME键返回效果的方法
- 设定自己的代码风格--Android学习笔记5
- SeekBar单向选择,SeekBar使用demo
- Fetching Android SDK component information
- Android打包那些事
- Jenkins Android 自动打包配置
- Android中的内存管理机制以及正确的使用方式