zoukankan      html  css  js  c++  java
  • Android 动画解释

    Android 动画解释 - XML

    目录

    alpha 动画效果

    这种动画主要实现渐出

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
        <alpha
            android:duration="1000"
            android:fromAlpha="0.0"
            android:toAlpha="1.0" />
        <!--
         透明度控制动画效果 alpha
            浮点型值:
                fromAlpha 属性为动画起始时透明度
                toAlpha   属性为动画结束时透明度
                说明: 
                    0.0表示完全透明
                    1.0表示完全不透明
                以上值取0.0-1.0之间的float数据类型的数字
            
            长整型值:
                duration  属性为动画持续时间
                说明:     
                    时间以毫秒为单位
    
        -->
    </set>
    
    

    返回

    scale动画效果

    这种动画主要实现从小到大缩放

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <scale
            android:duration="1000"
            android:fillAfter="false"
            android:fromXScale="0.0"
            android:fromYScale="0.0"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.4"
            android:toYScale="1.4" />
    
    </set><!--
         尺寸伸缩动画效果 scale
           属性:interpolator 指定一个动画的插入器
            在我试验过程中,使用android.res.anim中的资源时候发现
            有三种动画插入器:
                accelerate_decelerate_interpolator  加速-减速 动画插入器
                accelerate_interpolator        加速-动画插入器
                decelerate_interpolator        减速- 动画插入器
            其他的属于特定的动画效果
          浮点型值:
             
                fromXScale 属性为动画起始时 X坐标上的伸缩尺寸    
                toXScale   属性为动画结束时 X坐标上的伸缩尺寸     
            
                fromYScale 属性为动画起始时Y坐标上的伸缩尺寸    
                toYScale   属性为动画结束时Y坐标上的伸缩尺寸    
            
                说明:
                     以上四种属性值    
        
                        0.0表示收缩到没有 
                        1.0表示正常无伸缩     
                        值小于1.0表示收缩  
                        值大于1.0表示放大
            
                pivotX     属性为动画相对于物件的X坐标的开始位置
                pivotY     属性为动画相对于物件的Y坐标的开始位置
            
                说明:
                        以上两个属性值 从0%-100%中取值
                        50%为物件的X或Y方向坐标上的中点位置
            
            长整型值:
                duration  属性为动画持续时间
                说明:   时间以毫秒为单位
    
            布尔型值:
                fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
    
    -->
    

    返回

    translate动画效果

    这种动画主要是画面转换位置,从而移动的效果

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="2000"
            android:fromXDelta="30"
            android:fromYDelta="30"
            android:toXDelta="-80"
            android:toYDelta="300" />
            
        <!--
         translate 位置转移动画效果
            整型值:
                fromXDelta 属性为动画起始时 X坐标上的位置    
                toXDelta   属性为动画结束时 X坐标上的位置
                fromYDelta 属性为动画起始时 Y坐标上的位置
                toYDelta   属性为动画结束时 Y坐标上的位置
                注意:
                         没有指定fromXType toXType fromYType toYType 时候,
                         默认是以自己为相对参照物             
            长整型值:
                duration  属性为动画持续时间
                说明:   时间以毫秒为单位
    
    
    
        -->
    
    </set>
    

    返回

    rotate动画效果

    这种动画主要实现画面转移旋转的效果

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <rotate
            android:duration="3000"
            android:fromDegrees="0"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toDegrees="+350" />
        <!--
         rotate 旋转动画效果
           属性:interpolator 指定一个动画的插入器
                 在我试验过程中,使用android.res.anim中的资源时候发现
                 有三种动画插入器:
                    accelerate_decelerate_interpolator   加速-减速 动画插入器
                    accelerate_interpolator               加速-动画插入器
                    decelerate_interpolator               减速- 动画插入器
                 其他的属于特定的动画效果
                               
           浮点数型值:
                fromDegrees 属性为动画起始时物件的角度    
                toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   
    
            
                说明:
                         当角度为负数——表示逆时针旋转
                         当角度为正数——表示顺时针旋转              
                         (负数from——to正数:顺时针旋转)   
                         (负数from——to负数:逆时针旋转) 
                         (正数from——to正数:顺时针旋转) 
                         (正数from——to负数:逆时针旋转)       
    
                pivotX     属性为动画相对于物件的X坐标的开始位置
                pivotY     属性为动画相对于物件的Y坐标的开始位置
                    
                说明:        以上两个属性值 从0%-100%中取值
                             50%为物件的X或Y方向坐标上的中点位置
    
            长整型值:
                duration  属性为动画持续时间
                说明:       时间以毫秒为单位
    
        -->
    
    </set>
    
    

    返回

    activity 中添加代码

    
     Animation animation=null;
     animation= AnimationUtils.loadAnimation(this,R.anim.my_turn1);
     view1.setAnimation(animation);
     
     //实现延时关闭效果
     new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    igView.setVisibility(View.GONE);
                }
            },3000);
    
    

    需要添加这行代码,便可以实现动漫效果转出。

    返回

    使用ViewFlipper动态播放图片

    首先,得到xml文件中,开辟一个ViewFlipper

    <ViewFlipper
            android:layout_centerHorizontal="true"
            android:layout_marginTop="100dp"
            android:layout_width="270dp"
            android:layout_height="480dp"
            android:background="@drawable/bg_surrond"
            android:layout_alignParentTop="true"
            android:id="@+id/viewMyFlipper"
            android:inAnimation="@anim/right_in"
            android:outAnimation="@anim/left_out"
            >
    
    

    我用的是RelativeLayout,所以下面针对的是RelativeLayout的一些东西

    解释一下:

    • layout_centerHorizontal,这是设置布局是否是水平中间的,有true,false选项
    • layout_marginTop布局距离顶部多远,使用dp为单位
    • layout_width设置布局的宽度,以dp为单位
    • layout_height设置布局的长度,以dp为单位
    • background设置背景,在这里,我设置了图片框框
    • id添加布局id
    • inAnimation设置进入动漫
    • outAnimation设置出去的动漫

    然后便是转入转出的动漫效果

    在anim中写xml文件,进行动画转换

    返回

    从右进入

    
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="1000"
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        />
    </set>
    
    

    返回

    从左出去

    
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="1000"
        android:fromXDelta="0%p"
        android:toXDelta="-100%p"/>
    </set>
    
    

    返回

    其中的Java代码

    //声明空间
    ViewFlipper flipper;
    在创建函数中书写需要的东西
    protected void on create(){
    			flipper=findViewById(R.id.viewMyFlipper);
            flipper.startFlipping();//开始滑动
            for (int value : resId)//选自己的图片,resID是我的一个int的一个数组,里面放置的是R.drawable.XXX的图片文件
                flipper.addView(getImageView(value));
    }
    //自定义函数
    private View getImageView(int redId) {
            ImageView image=new ImageView(this);
            image.setBackgroundResource(redId);
            return image;
    }
    
    

    经过以上的书写,就可以执行图片转换了。

    返回


    ----->原网址<-----

    这是小睿的博客,如果需要转载,请标注出处啦~ヾ(≧▽≦*)o谢谢。
  • 相关阅读:
    我的2020书单
    记录一次克隆硬盘的经历
    npm简单介绍
    批量处理Excel从格式xls到xlsx
    SQL经典实例笔记
    在字符串中找出连续最长的数字串
    将数字转化成字符串
    寄存器位读写,结构体位域定义,位域操作,位操作
    android C/C++ source files 全局宏定义 .
    android2.3 -添加自定义按键:作唤醒功能 .
  • 原文地址:https://www.cnblogs.com/Yunrui-blogs/p/12500310.html
Copyright © 2011-2022 走看看