Android animation 之视图动画、帧动画、属性动画的简单使用

前言: Android提供的动画效果可以说是非常丰富了,一个Android软件如果没有一点动画效果,这款软件怎么用都会是死气沉沉的,因此,为你的APP添加一下简单的动画效果还是必不可少的,在此我简单的介绍View Animation(视图动画)、Drawable Animation (帧动画) 、Property Animation (属性动画)的XML使用方法。

一、View Animation(视图动画)
视图动画,也叫 Tween (补间)动画可以在一个视图容器内执行一系列简单变换(位置、大小、旋转、透明度)。 譬如,如果你有一个 TextView 对象,您可以移动、旋转、缩放、透明度设置其文本,当然,如果它有一个背景图像,背景图像会随着文本变化。
但它有一个非常严重的缺点是,移动后的View仅仅是效果上的移动,实际位并没有移动,因此在动画效果移动后的位置点击View是没有效果的。这个问题可以用属性动画 去解决

xml使用视图动画的简单示例代码如下:

1、layout布局xml文件

<?xml version="1.0" encoding="utf-8"?>    

2、…res/anim文件夹下新建viewanimation.xml文件如下(动画效果是透明度从0-1;大小从原图的0.5倍-原图的1.2倍;旋转角度从0-360;位置移动从View控件的左上角至右下角)

<?xml version="1.0" encoding="utf-8"?>                                        

注:关于位置的值,总结一下,其实都是以View的左上角为参考进行左右移动

3、java代码执行动画

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void test(View view)    {        ImageView spaceshipImage = findViewById(R.id.img);        Animation animation = AnimationUtils.loadAnimation(this, R.anim.viewanimation);        animation.setDuration(1000);        spaceshipImage.startAnimation(animation);    }}

二、Drawable Animation (帧动画)
帧动画它允许你实现像播放幻灯片一样的效果,就是设置一系列图片有顺序有时间的进行显示,几张图片有序的快速展示,就会形成动画效果。

1、layerout布局xml文件

<?xml version="1.0" encoding="utf-8"?>    

2、…res/drawable文件夹下新建anim.xml文件

该动画效果是四张图片每张展示5ms,顺序重复执行

<?xml version="1.0" encoding="utf-8"?>                    

3、Java代码执行动画

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void test(View view)    {        ImageView rocketImage = findViewById(R.id.img);        rocketImage.setBackgroundResource(R.drawable.anim);        AnimationDrawable animationDrawable=(AnimationDrawable)rocketImage.getBackground();        animationDrawable.start();    }}

三、Property Animation (属性动画)

属性动画是比较常用的动画,它的动画效果更加灵活多样,切解决了视图动画的位置问题。

1、layerout布局xml文件

<?xml version="1.0" encoding="utf-8"?>    

2、…res/animator文件夹下新建set.xml文件

该动画效果是将View从-1000的位置移动到0,并且同时进行一次0-180的旋转

<?xml version="1.0" encoding="utf-8"?>        

3、Java代码执行动画

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void test(View view)    {        Animator anim = AnimatorInflater.loadAnimator(this, R.animator.set);        ImageView iv=findViewById(R.id.img);        anim.setTarget(iv);        anim.start();    }}

后言:
关于Android动画方面,这位前辈的文章讲的非常详细,并且带有示例代码,有兴趣深入学习的,可以移步 https://github.com/OCNYang/Android-Animation-Set

更多相关文章

  1. Android动态效果Animation
  2. Android中的图形图像
  3. (转)android 按比例布局 适应不同分辨率
  4. android:layout_weight属性详解
  5. Android之SlidingDrawer抽屉效果
  6. android事件拦截处理机制详解
  7. android studio for android learning (九) android之Adapter用法
  8. Android之SlidingDrawer抽屉效果
  9. Android中在GridView网格视图上实现item拖拽交换的方法

随机推荐

  1. [置顶] android开发各种相关干货
  2. PhoneGap是什么?
  3. Android(安卓)混淆
  4. android 设置闹钟及通知
  5. Android(安卓)Studio插件之快速findViewB
  6. requires plug-in org.eclipse.wst.sse.u
  7. Android开源框架----1. SmartImageView图
  8. android Intent练习
  9. 如何解决安卓SDK无法下载Package的问题
  10. Android(安卓)9 安卓P System-as-root