刚开始我接触Android的时候,觉得XML文件就是布局文件,后来才发现XML的功能远不止如此,它可以存放很多数据(比如字符串),可以配置列表,甚至还可以变成一张图,一幅画。下面就简单地说一下XML文件怎么变成一幅画。

首先要声明,Android的XML绘图文件用的是Layout XML File,而且要放在drawable文件夹下!!!(话说难道就没有人和我有相同的问题吗?我看到的几乎所有的博客和教材都没有提到这一点。我刚开始把XML文件放到了layout文件夹下,怎么也转不起来,后来用geogle才找到了答案)

下面开始进入正式的内容:

一:Bitmap

XML的Bitmap没什么技术含量可言,以下这几行代码就是draw.xml文件的全部内容,再说一次,一定要放在drawable文件夹下。

<?xml version="1.0" encoding="utf-8"?>
而引用这个文件则在activity_main.xml(当然,可以在layout文件下的任意一个布局文件中引用)中,代码如下:

<?xml version="1.0" encoding="utf-8"?>    

二:Shape

Shape可以说是XML绘图的精华,这部分我参考了大神小小工匠的 Android-Xml绘图,向前辈学习!

下面是Shape支持的参数

    android:topLeftRadius="integer"        android:topRightRadius="integer"        android:bottomLegtRadius="integer"        android:bottomRightRadius="integer"/>    android:endColor="color"        android:gradientRadius="integer"        android:startColor="color"        android:type=["linear"|"radial"|"sweep"]        android:useCenter=["true"|"false"]/>    android:bottom="integer"/>            




下面是一些解释:

gradient: 设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变

android:type 渐变的类型    linear 线性渐变,默认的渐变类型    radial 放射渐变,设置该项时,android:gradientRadius也必须设置    sweep 扫描性渐变android:startColor 渐变开始的颜色android:endColor 渐变结束的颜色android:centerColor 渐变中间的颜色android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间android:gradientRadius 渐变的半径,只有渐变类型为radial时才使用android:useLevel 如果为true,则可在LevelListDrawable中使用

corners: 设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角,当设置的圆角半径很大时,比如200dp,就可变成弧形边了

android:radius 圆角半径,会被下面每个特定的圆角属性重写android:topLeftRadius 左上角的半径android:topRightRadius 右上角的半径android:bottomLeftRadius 左下角的半径android:bottomRightRadius 右下角的半径

stroke: 设置描边,可描成实线或虚线。

android:color 描边的颜色android:width 描边的宽度android:dashWidth 设置虚线时的横线长度android:dashGap 设置虚线时的横线之间的距离

大致就是这些,更详细的可以点击上面的链接去看小小工匠前辈的文章。

三:layer

Layer是PhotoShop中的功能,在Android中,同样可以用layer实现图层的概念。
<?xml version="1.0" encoding="utf-8"?>                                                                                                                                                                                                                                                                                                                                                                                                       



    
 通过layer,layer-list可以很方便的实现图层效果,图片会一次叠加。                

四:selector

Selector的作用在于帮助开发者实现静态绘图中的实践反馈,通过给定的不同事件设置不同的图像。
<?xml version="1.0" encoding="utf-8" ?>                                                                      

以上几种功能可以配合使用,比如Selector中也可以出现Shape。

更多相关文章

  1. 如何在 iOS、Android、macOS、Windows 之间快速文件互传?
  2. Android资源文件夹及资源文件的详细介绍
  3. Android Layout布局文件里的android:layout_height等属性为什么.
  4. Android多语言支持以及各国语言Values文件夹命名规则
  5. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流
  6. android之播放多媒体文件一(播放音频)

随机推荐

  1. Android硬件访问服务 (硬核最终篇)
  2. Android常用Manager
  3. android的Intent
  4. android 开发中常用颜色,以及一些颜色的代
  5. App应用之提交到各大市场渠道
  6. android中判断网络和WIFI是否连接
  7. Android5.0通知变化浅析
  8. android中判断网络和WIFI是否连接
  9. android 插件化 与一个轻量级框架
  10. 热更新预言