设为首页 加入收藏

TOP

一起学Android之Animation(一)
2019-08-26 06:37:38 】 浏览:95
Tags:一起 Android Animation

本文以一个简单的小例子,简述在Android开发中,动画的简单应用,仅供学习分享使用。

概述

android提供了各种强大的apis,用于将动画应用到ui元素中,来丰富应用程序的功能和应用。

动画分类

在Android框架中,动画主要分为三类【这三种动画系统都是可行的选择,但一般来说,属性动画系统是首选的使用方法,因为它更灵活,提供了更多的功能】,具体如下:

  • 帧动画:将图像资源按顺序一帧一帧的播放出来,形成动画()。
  • 补间动画:又叫视图动画,是比较旧的系统,只能用于视图组件,相对比较容易设置和提供能力满足程序的需要。
  • 属性动画:在android 3.0(api等级11)中引入的属性动画系统,允许您对任何对象的属性进行动画处理,包括未呈现到屏幕上的属性。该系统是可扩展的,并允许自定义动画类型的属性。

帧动画

将动画资源文件作为图片控件(ImageView)的背景图(background)。

帧动画涉及知识点如下:

  • AnimationDrawable: 用于创建逐帧动画的对象,由一系列可拖动对象,可用作视图对象的背景
  • isRunning() 是否正在运行
  • stop() 停止动画
  • start() 开始运行

帧动画核心代码

 在drawable目录下,新增一个动画资源配置文件【animation-list节点下包含item子节点,item有两个属性,android:drawable=图像资源id,android:duration=周期】,如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android">
 3     <item android:drawable="@drawable/n0" android:duration="300"></item>
 4     <item android:drawable="@drawable/n1" android:duration="300"></item>
 5     <item android:drawable="@drawable/n2" android:duration="300"></item>
 6     <item android:drawable="@drawable/n3" android:duration="300"></item>
 7     <item android:drawable="@drawable/n4" android:duration="300"></item>
 8     <item android:drawable="@drawable/n5" android:duration="300"></item>
 9     <item android:drawable="@drawable/n6" android:duration="300"></item>
10     <item android:drawable="@drawable/n7" android:duration="300"></item>
11     <item android:drawable="@drawable/n8" android:duration="300"></item>
12     <item android:drawable="@drawable/n9" android:duration="300"></item>
13 </animation-list>

java设置代码如下:

 1 private AnimationDrawable drawable;
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_drawable);
 7         ImageView imageView= (ImageView) this.findViewById(R.id.ivLetter);
 8         drawable= (AnimationDrawable) imageView.getBackground();
 9         drawable.start();
10     }
11 
12     @Override
13     public boolean onTouchEvent(MotionEvent event) {
14         if(event.getAction()==MotionEvent.ACTION_DOWN){
15             if(drawable.isRunning()) {
16                 drawable.stop();
17             }else{
18                 drawable.start();
19             }
20         }
21         return super.onTouchEvent(event);
22     }

补间动画

补间动画,又称渐变动画是指定义起始状态,结束状态,中间状态等,然后其他部分由程序自动生成,从而形成动画。

补间动画涉及知识点如下:

  • TranslateAnimation 平移动画 控制对象位置的动画。
  • RotateAnimation 旋转动画 控制对象旋转的动画。这个旋转需要放置在xy平面上。您可以指定中心要使用的点,其中(0,0)是左上角。如果未指定,则(0,0)为默认旋转点。
  • ScaleAnimation 缩放动画 控制对象的比例尺的动画。您可以指定点用于缩放中心。
  • AlphaAnimation 透明度动画 控制对象的alpha级的动画,通过更改透明度属性,对于对象的淡入淡出,这是一个很有用的方法。
  • AnimationSet 动画集合 上述动画可以组合使用。
  • setFillAfter(true); 设置动画结束后的填充
  • setDuration(2000); 动画周期
  • setRepeatCount(2); 重复次数
  • setRepeatMode(Animation.REVERSE); 重复模式

补间动画核心代码如下:

 1   /**
 2      * 平移
 3      * @param v
 4      */
 5     protected  void transfer_click(View v){
 6 
 7         //参数是平移的起始坐标和结束坐标(起始X轴位置,
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 截屏的各种骚操作 下一篇ADB控制手机命令

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目