drwable资源丶资源文件及补间动画
在android 中也有很多,炫酷的动画,和状态。
drwable资源
shape的介绍和写法:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<!-- shape必须为根元素,android:shape定义了形状,默认为矩形。
rectangle 矩形 oval 椭圆 line 水平直线。需要元素定义线的宽度 ring 环形-->
<!-- corners只对矩形有效,表示圆角的度数,数值越大角越圆,数值越小越趋近于直角
-->
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
<!-- gradient表示渐变色
android:angle
渐变色的角度值。0表示从左到右,90表示从下到上。必须是45的倍数,默认是0
android:centerX
渐变色中心的X相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerY
渐变色中心的Y相对位置(0-1.0)。当android:type=”linear”时无效。
android:centerColor 可选的颜色,出现在start和end颜色之间。
android:endColor end颜色。
android:gradientRadius 渐变色的半径。当android:type=”radial”时有效。
android:startColor start颜色。
android:type 渐变色的样式 "linear"线性渐变,默认值
"radial"环形渐变。start颜色是处于中间的颜色。 "sweep" sweep渐变
android:useLevel “true”表示可以当作LevelListDrawable使用。
-->
<gradient
android:angle="integer"
android:centerX="integer"
android:centerY="integer"
android:centerColor="integer"
android:endColor="color"
android:gradientRadius="integer"
android:startColor="color"
android:type=["linear" | "radial" | "sweep"]
android:useLevel=["true" | "false"] />
<!-- padding表示即对内的偏移
-->
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<!-- size为shape大小
-->
<size
android:width="integer"
android:height="integer" />
<!-- solid为填充色
-->
<solid
android:color="color" />
<!--stroke为shape边线的设置
-->
<stroke
android:width="integer"
t:color="color"
android:dashWidth="ieger"
android:dashGap="integer" />
</shape>
clip 资源写法:
<?xml version="1.0" encoding="utf-8"?>
<!-- clipOrientation:截图方向 -->
<!-- drawable:资源 -->
<!-- gravity:截图开始位置 -->
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="vertical"
android:drawable="@drawable/logo"
android:gravity="center">
</clip>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/one"></item>
<item android:state_pressed="false" android:drawable="@drawable/two"></item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@mipmap/ic_launcher" android:gravity="center"></bitmap>
</item>
<item android:top="40dp" android:left="40dp" >
<bitmap android:src="@mipmap/ic_launcher" android:gravity="center"></bitmap>
</item>
<item android:top="60dp" android:left="60dp" >
<bitmap android:src="@mipmap/ic_launcher" android:gravity="center"></bitmap>
</item>
</layer-list>
anim 资源的写法
<?xml version="1.0" encoding="utf-8"?>
<!-- 透明度改变动画
fromAlpha="1.0"从哪个透明度 【值为0.0(全透明)到1.0(不透明)】
toAlpha="0.2" 到哪个透明度
repeatMode 重复模式 【 reverse 逆转 restart 重新开始】
repeatCount 重复次数 【infinite 或用-1 表示无限】
duration 持续时间 【毫秒为单位】
-->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.2"
android:repeatMode="reverse"
android:repeatCount="infinite"
android:duration="5000">
</alpha>
动态补间动画(最新版本在drwable)
<?xml version="1.0" encoding="utf-8"?>
<!--oneshot false代表无限次 true 代表一次-->
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/bird1" android:duration="100"></item>
<item android:drawable="@drawable/bird2" android:duration="100"></item>
<item android:drawable="@drawable/bird3" android:duration="100"></item>
<item android:drawable="@drawable/bird4" android:duration="100"></item>
<item android:drawable="@drawable/bird5" android:duration="100"></item>
<item android:drawable="@drawable/bird6" android:duration="100"></item>
<item android:drawable="@drawable/bird7" android:duration="100"></item>
</animation-list>
<?xml version="1.0" encoding="utf-8"?>
<!-- 旋转动画
android:fromDegrees 从哪个角度
android:toDegrees 到哪个角度
android:pivotX="50%" 以自己为旋转中心
android:pivotY="50%"
repeatMode 重复模式 【 reverse 逆转 restart 重新开始】
repeatCount 重复次数 【infinite 或用-1 表示无限】
duration 持续时间 【毫秒为单位】
-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="45"
android:toDegrees="90"
android:pivotY="50%"
android:pivotX="50%"
android:repeatMode="restart"
android:repeatCount="-1"
android:duration="2000">
</rotate>
<?xml version="1.0" encoding="utf-8"?>
<!-- 缩放动画
android:fromXScale="1.0" 从x轴缩放的倍数
android:toXScale="0.8" 到x轴缩放的倍数
android:fromYScale="1.0" 从y轴缩放的倍数
android:toYScale="0.8" 到y轴缩放的倍数
android:pivotX="50%" 以图片自己的中心为中心点缩放
repeatMode 重复模式 【 reverse 逆转 restart 重新开始】
repeatCount 重复次数 【infinite 或用-1 表示无限】
duration 持续时间 【毫秒为单位】
-->
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1.0"
android:toXScale="0.8"
android:fromYScale="1.0"
android:toYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:repeatMode="reverse"
android:repeatCount="-1"
android:duration="50">
</scale>
<?xml version="1.0" encoding="utf-8"?>
<!-- 平移动画
android:fromXDelta 从x轴点的坐标
android:toXDelta 移动到x轴点的坐标
android:fromYDelta 从y轴点的坐标
android:toYDelta 从y轴点的坐标
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-600"
android:toXDelta="600"
android:repeatMode="reverse"
android:repeatCount="-1"
android:duration="3000"
>
</translate>
属性动画
animator文件下:
<?xml version="1.0" encoding="utf-8"?>
<!--属性动画,是对属性进行控制-->
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="textColor"
android:duration="1000"
android:valueFrom="#ff00ff"
android:valueTo="#00ff00"
android:repeatMode="reverse"
android:repeatCount="-1"
>
</objectAnimator>