• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 安卓第十八天笔记--简单动画,安卓第十八天--

安卓第十八天笔记--简单动画,安卓第十八天--

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了安卓密室逃脱1第10关,印象笔记扫描宝安卓版,印象笔记安卓版,安卓笔记,印象笔记安卓等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

安卓第十八天笔记--简单动画,安卓第十八天--



title:动画

动画

1.补间动画

2.平移

fromXType  水平播放的类型
fromXValue 从哪开始,0表示现在的位置
toXType,   到什么位置的类型
toXValue 到什么坐标
fromYType 垂直播放的类型
fromYValue 从哪开始,0表示现在的位置
toYType 到什么位置的类型
toYValue 到什么坐标
TranslateAnimation translate = new TranslateAnimation(
            Animation.RELATIVE_TO_SELF, -2, 
            Animation.RELATIVE_TO_SELF, 2, 
            Animation.RELATIVE_TO_SELF, 0,
            Animation.RELATIVE_TO_SELF, 1);
    //设置显示时间
    translate.setDuration(3000);
    //播放资源为无限循环
    translate.setRepeatCount(Animation.INFINITE);
    //播放模式,反转播放,先顺着播完,就反着播放
    translate.setRepeatMode(Animation.REVERSE);
    //哪个组件在播放,设置
    imageView.setAnimation(translate);
    //开始播放
    translate.start();

 

3.旋转

/*
     * fromDegrees, 从什么角度开始 0 从现在的 toDegrees, 270度 pivotXType, X中心点类型
     * Animation.RELATIVE_TO_SELF自身 pivotXValue, 中心点值 0.5表示这个图片的一半置
     * pivotYType, Y中心点类型Animation.RELATIVE_TO_SELF自身
     *  pivotYValue 0.5f 
     */
    RotateAnimation rotate = new RotateAnimation(0, 360,
            Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
            3);
    //播放显示时间
    rotate.setDuration(5000);
    rotate.setRepeatCount(Animation.INFINITE);
    rotate.setRepeatMode(Animation.RESTART);

    imageView.setAnimation(rotate);
    rotate.start();

 

4.缩放

    /*
     * fromX, toX, 从坐标什么地址开始到什么坐标,0,表示当前 fromY, toY, 
     * pivotXType,  旋转的中心点
     * pivotXValue, 类型, pivotYType, pivotYValue
     */
    ScaleAnimation scale = new ScaleAnimation(1, 2, 1, -2,
            Animation.RELATIVE_TO_SELF, -2, Animation.RELATIVE_TO_SELF, 3);

    // 播放显示时间
    scale.setDuration(5000);
    scale.setRepeatCount(Animation.INFINITE);
    scale.setRepeatMode(Animation.RESTART);

    imageView.setAnimation(scale);
    scale.start();

 

5.透明度

    /*
     * fromAlpha,  从什么透明度开始
     * toAlpha 到什么透明度结束
     */
    AlphaAnimation alpha = new AlphaAnimation(1, 0);

    // 播放显示时间
    alpha.setDuration(2000);
    alpha.setRepeatCount(Animation.INFINITE);
    alpha.setRepeatMode(Animation.REVERSE);

            imageView.setAnimation(alpha);
            alpha.start();
}

 

6.集合

就是建立一个
AnimationSet set = new AnimationSet();
set.addAnimation(scale);
    set.addAnimation(rotate);
    set.addAnimation(translate);
    set.start();

 


就可以播放多个动画

7. XML配置

在res/目录下建立anim文件目录
 <!-- 
        如果平移的数值是数字,那么表示的是绝对值
        如果是百分比,那么表明是自己的宽高的倍数
        如果是百分比加上 p,那么表明是自己的父元素的宽高的倍数
         -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate 
    android:fromXDelta="200%"
    android:toXDelta="200%"
    android:fromYDelta="-100%"
    android:toYDelta="200%"
    android:duration="4000"
    android:repeatCount="infinite"
    android:repeatMode="reverse"/>

    <rotate
       android:fromDegrees="0"
       android:toDegrees="360"
       android:toYScale="0.0"
       android:pivotX="50%"
       android:pivotY="50%"
       android:duration="4000" 
       android:repeatCount="infinite"
       android:repeatMode="reverse"/>

</set>

 

加载使用AnimationUtils.load方法加载

Animation animation = AnimationUtils.loadAnimation(this, R.anim.animation_set);

    imageView.startAnimation(animation);

 

8.属性动画

一般都用代码控制

/**
 * 水平
 * 
 * @param v
 */
public void translate(View v) {
    /**
     * 参数一: 谁去播放这个动画 参数二: 属性名字 想要改变x方向的移动 参数三:动画执行的数值
     */
    ObjectAnimator objectAnimatrX = ObjectAnimator.ofFloat(imageView,
            "translationX", -50, 50);
    ObjectAnimator objectAnimatrY = ObjectAnimator.ofFloat(imageView,
            "translationY", 0, 60);

    objectAnimatrX.setDuration(2000);

    objectAnimatrX.setRepeatCount(ObjectAnimator.INFINITE);

    objectAnimatrX.setRepeatMode(ObjectAnimator.REVERSE);

    objectAnimatrX.start();




}

/**
 * 转换
 * 
 * @param v
 */
public void rotate(View v) {
    ObjectAnimator rotateX = ObjectAnimator.ofFloat(imageView, "rotationX", 0,360);
    ObjectAnimator rotateY = ObjectAnimator.ofFloat(imageView, "rotationY", 0,360);
    rotateX.setDuration(3000);
    rotateX.setRepeatMode(Animation.REVERSE);
    //rotateX.setRepeatCount(Animation.INFINITE);
    rotateY.setDuration(3000);
    rotateY.setRepeatMode(Animation.REVERSE);
    //rotateY.setRepeatCount(Animation.INFINITE);

    AnimatorSet set  = new AnimatorSet();
    set.playSequentially(rotateX,rotateY);
    set.start();
}

/**
 * 绽放
 * 
 * @param v
 */
public void scale(View v) {
    ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 2.0f,5f);
    ObjectAnimator scaleY = ObjectAnimator.ofFloat(imageView, "scaleY", 2.0f,5f);
    scaleX.setDuration(3000);
    scaleX.setRepeatMode(Animation.REVERSE);
    scaleX.setRepeatCount(Animation.INFINITE);
    scaleY.setDuration(3000);
    scaleY.setRepeatMode(Animation.REVERSE);
    scaleY.setRepeatCount(Animation.INFINITE);

    AnimatorSet set = new AnimatorSet();
    set.playTogether(scaleX,scaleY);
    set.start();


}

/**
 * 透明
 * 
 * @param v
 


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 安卓第十八天笔记--简单动画,安卓第十八天--
  • 安卓第十五天笔记-图形图像一些简单处理,安卓第图形图像
  • 安卓第十二天笔记-广播,安卓第十二天广播

相关文章

  • 2017-05-26nagios二次开发之“依据分组绘制服务图”
  • 2017-05-26Cheatsheet: 2017 04.01 ~ 04.30,cheatsheet04.30
  • 2017-05-26Linux内核系列—操作系统开发之HelloWorld,linuxhelloworld
  • 2017-05-26一.TextView 显示文本框控件, EditText 输入文本框,.textviewedittext
  • 2017-05-26dpdk内存管理——内存初始化
  • 2017-05-26Android开发通用的工具类
  • 2017-05-26XamarinAndroid 自动绑定View变量,xamarinandroidview
  • 2017-05-26仿微信新消息提示音,消息
  • 2017-05-26整理几篇比较好的AndroidUI动画开发文章,几篇androidui
  • 2017-05-26android ndk开发(二)实现一个官方demo,androidndk

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我的Android进阶之旅------)Android自定义View实现带数字的进度条(NumberProgressBar)
    • android eclipse关联源码,以及源码(代码)以及jar查看软件,androideclipse
    • 在Kotlin上怎样用Mockito2 mock final 类(KAD 23),kotlinmockito2
    • Eclipse迁移到Android studio步骤如下:,eclipseandroid
    • 保持listview当前位置,listview当前位置
    • Android蓝牙技术Bluetooth使用流程(详解)
    • Android细笔记--ContentProvider,--contentprovider
    • Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...,dalvikdex
    • Android HandlerThread 消息循环机制之源码解析
    • andriod绘制图形,andriod绘制

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有