Drawble是Android应用中使用最灵活,也是最广泛的资源,不仅可以直接使用".png",“.jpg”,".9.png"等图片做为资源,也可以直接使用多种XML文件作为资源。只要一份XML文件可以被系统编译成Drawble子类的对象,那么这份XML文件就可以作为Drawble资源
最简单的资源,吧 “.png”,“.jpg”,".9.png"等格式放入/res/ drawble-xxx目录下,Android应用在编译应用时会自佛呢及时加载图片,并在R清单类中生成该资源的索引
用于组织多个 Drawble对象。当使用 StateList Drawble 作为目标组件的背景,背景图片时, StateList Drawble 对象所心事的 Drawble对象会随着目标组件的改变而自动切换
运用场景:高亮显示文本框
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="
<!-- 指定获得焦点时的颜色 -->
<item android:state_focused="true"
android:color="#f44"/>
<!-- 指定失去焦点时的颜色 -->
<item android:state_focused="false"
android:color="#ccf"/>
</selector>
和 StateList Drawble有点类似, Layer Drawble也可以包含一个 Drawble数组,因此字体将会按照这些 Drawble对象的数组顺序来绘制它们,索引最大的 - Drawble对象将会被绘制在最上面
运用场景:定制拖动条外观
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="
<!-- 定义轨道的背景 -->
<item android:id="@android:id/background"
android:drawable="@drawable/grow" />
<!-- 定义轨道上已完成部分的外观-->
<item android:id="@android:id/progress"
android:drawable="@drawable/ok" />
</layer-list>
用于定义一个基本的几何图形(例如:圆形,矩形,线性),定义 Shape Drawble的XML文件的跟元素的<shape…>
运用场景:椭圆形的文本框
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="
android:shape="rectangle">
<!-- 设置填充颜色 -->
<solid android:color="#fff"/>
<!-- 设置四周的内边距 -->
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<!-- 设置边框 -->
<stroke android:width="3dip" android:color="#ff0" />
</shape>
代表从全位图上街区的一个图片的片段,在XML中使用<clip…>开头
运用场景:慢慢展开的风景
<?xml version="1.0" encoding="UTF-8"?>
<clip xmlns:android="
android:drawable="@drawable/shuangta"
android:clipOrientation="horizontal"
android:gravity="center">
</clip>
代表一个动画,既支持传统的逐帧动画,也支持通过平移、变换计算出来的补间动画。
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="
android:interpolator="@android:anim/linear_interpolator"
android:duration="5000">
<!-- 定义缩放变换 -->
<scale android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true"
android:duration="2000"/>
<!-- 定义位移变换 -->
<translate android:fromXDelta="10"
android:toXDelta="130"
android:fromYDelta="30"
android:toYDelta="-80"
android:duration="2000"/>
</set>
源码附件已经打包好上传到百度云了,大家自行下载即可~
链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27
提取码: yu27
百度云链接不稳定,随时可能会失效,大家抓紧保存哈。
如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~
开源地址
码云地址:
http://github.crmeb.net/u/defu
Github 地址:
http://github.crmeb.net/u/defu