drwable资源丶资源文件及补间动画

本文详细介绍了Android中drwable资源的使用方法,包括shape、clip、selector等资源的XML写法,以及如何创建透明度、旋转和平移等多种类型的动画效果。

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值