Drawable资源
关于图片资源一般都比较清楚,下面讲其它的drawable资源
StateListDrawable资源
这种资源与先前讲的res/color/下面的状态颜色列表有点相似
使用方法:
在res/drawable/目录下创建一文件夹,我们这里假设为button_background.xml
文件里xml格式如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:background=“@drawable/ic_launcher”/>
.......
</selector>
然后在xml布局文件里使用android:background="@drawable/button_background"即可,此代码实现点击按钮时按钮背景图片为ic_launcher图片
ShapeDrawable资源
定义一个基本的集合图形(矩形、椭圆、线条、圆环),并由自己控制其外观
使用方法:
在res/drawable/目录下创建一xml文件,假如为shap_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmls:android="http://schemas.android.com/apk/res/android"
android:shape="" <!--指定几何图形形状-->
<!--进行一些外观定制-->
</shape>
ClipDrawable资源使用方法与ShapeDrawable资源基本一样,只是根节点改为<clip></clip>
AnimationDrawable资源
定义动画的xml文件应该放到res/anim/目录下,其根节点是<set></set>
其中可以定义的子节点有<alpha/>(透明度改变) <scale/>(缩放改变) <translate/>(平移改变) <rotate/>(旋转改变)
注意:如果在一个set节点里面定义多个动画,例如定义了透明度改变动画和平移动画,那么这两个动画将是同时进行的。
而在同一个动画xml文件里是不允许有多个set节点的。
使用方法:利用AnimationUtils类的静态方法AnimationUtils.loadAnimation(context, id)即可得到你定义的动画,得到一个Animation对象,然后使用控件的startAnimation(Animation anim)开始动画。
下面是这四种动画的一些属性及其含义
alpha节点
fromAlpha:开始动画时的透明度
toAlpha:结束动画时的透明度
duration:动画持续时间
startOffset:动画延迟时间(也就是调用startAnimation()方法要过了这段时间才会开始动画,注意:这段时间期间控件的透明度是fromAlpha指定的透明度)
注意:fillAfter即使设置为true,仍然要在java代码中再设置一次,否则动画结束并不会保持结束时那种状态,而会变为动画开始前的状态(去掉动画的原始状态,不是fromAlpha指定的透明度)
repeatCount:动画重复次数
repeateMode:动画重复模式,这个属性有两种取值restart和reverse,默认就是restart,表示在动画重复次数大于0时再次执行动画时再次从初始状态到结束状态,如果是reverse的话,表示从初始状态到结束状态(算一次动画),再从结束状态到初始状态(算一次动画),再从初始状态到结束状态......这样一直重复直到到达动画重复次数为止。
scale节点
fromXScale:开始动画时宽度的大小(1.0或者100%为原始大小)
toXScale:结束动画时宽度的大小
fromYScale:开始动画时高度的大小(1.0或者100%为原始大小)
toYScale:结束动画时高度的大小
duration:动画持续时间
pivotX与pivotY指定中心点
repeatCount与repeateMode跟alpha一样
translate节点
fromXDelta:起始x坐标位置
toXDelta:结束x坐标位置
fromYDelta:起始y坐标位置
toYDelta:结束y坐标位置
上面四个属性,如果值都是0.2或者20%这些的,表示的位置是相对于本身的位置,也就是以自己为参照物,而如果使用20%p的话,表示以上一层view为参照物,此时不能写为0.2p。
其它属性基本与其它动画一样。
rotate动画
fromDegrees:起始位置(以控件初始位置为0度,绕旋转点旋转指定度数的那个位置)
toDegrees:终止位置(以起始位置为0度,绕旋转点旋转指定度数的那个位置)
pivotX与pivotY:指定旋转点,50%、50%表示围绕控件中心点旋转,100%、100%表示围绕控件右下角点旋转
其它属性基本与其它动画一样。