android游戏开发5-10 补间动画 透明度渐变 旋转 缩放 平移

首先在res文件下新建anim文件夹

新建anim_alpha.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <alpha
        android:duration="2000"
        android:fillAfter="true"
        android:fromAlpha="1"
        android:repeatCount="1"
        android:repeatMode="reverse"
        android:toAlpha="0"/>

</set>

新建anim_translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
    android:duration="2000"
    android:fillAfter="true"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:repeatCount="1"
    android:repeatMode="reverse"
    android:toXDelta="860"
    android:toYDelta="0"
    />

</set>

新建anim_rotate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <rotate
        android:duration="2000"
        android:fromDegrees="0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="720"/>
    <rotate
        android:duration="2000"
        android:fromDegrees="360"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="2000"
        android:toDegrees="0"/>

</set>

新建anim_scale.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <scale
        android:duration="2000"
        android:fillAfter="true"
        android:fromXScale="1"
        android:fromYScale="1"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="1"
        android:repeatMode="reverse"
        android:toXScale="2.0"
        android:toYScale="2.0"/>

</set>

然后修改main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cat"/>

    <LinearLayout
        android:id="@+id/myli2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/alpha"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="透明" />

        <Button
            android:id="@+id/translate"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="旋转" />

        <Button
            android:id="@+id/scale"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="缩放" />

        <Button
            android:id="@+id/rotate"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="平移" />
    </LinearLayout>

</LinearLayout>

MainActivity.java

package com.mz.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {
    private ImageView img;
    private Button btn1;
    private Button btn2;
    private Button btn3;
    private Button btn4;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final Animation animation_alpha = AnimationUtils.loadAnimation(this,
                R.anim.anim_alpha);
        final Animation animation_translate = AnimationUtils.loadAnimation(
                this, R.anim.anim_translate);
        final Animation animation_scale = AnimationUtils.loadAnimation(this,
                R.anim.anim_scale);
        final Animation animation_rotate = AnimationUtils.loadAnimation(this,
                R.anim.anim_rotate);
        img = (ImageView) findViewById(R.id.img);
        btn1 = (Button) findViewById(R.id.alpha);
        btn2 = (Button) findViewById(R.id.translate);
        btn3 = (Button) findViewById(R.id.scale);
        btn4 = (Button) findViewById(R.id.rotate);
        btn1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                img.startAnimation(animation_alpha);
            }
        });
        btn2.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                img.startAnimation(animation_translate);
            }
        });
        btn3.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                img.startAnimation(animation_scale);
            }
        });
        btn4.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                img.startAnimation(animation_rotate);
            }
        });
    }
}
时间: 2024-10-19 19:31:09

android游戏开发5-10 补间动画 透明度渐变 旋转 缩放 平移的相关文章

Android开发实战之补间动画和属性动画

说起动画,其实一点也不陌生,在使用一款app的时候为了优化用户体验,多多少少的,都会加入动画. 安卓中的动画,分为两大类:补间动画和属性动画.本篇博文会详细介绍总结这两大动画,希望本篇博文对你的学习和生活有所帮助. **补间动画** 补间动画分为四类:平移动画,旋转动画,缩放动画和渐变动画.这几类动画用法都差不多,只是对象参数不同这里我统一展示出来.以下是效果图: 实现代码很简单: btn1.setOnClickListener(new View.OnClickListener() { @Ove

【Android - 进阶】之Animation补间动画

补间动画也叫View动画,它只能针对View进行动画操作,且补间动画操作的只是View中可见的部分,即只操作界面,对于可点击区域等都不会进行操作. 在Android中,补间动画的顶级类是Animation.补间动画包括对View的透明度.缩放.平移.旋转进行动画操作,对应的JAVA类分别是AlphaAnimation.ScaleAnimation.TranslateAnimation.RotateAnimation. Android还提供了一个动画集合AnimationSet,可以将多个动画单体

Android ViewAnimation(tween animation补间动画)文档教程

XML注意事项: 在res/anim/目录下,XML文件只能有 <alpha>, <scale>, <translate>, <rotate>中一个根元素,set标签下默认动画同时进行,想要顺序进行需要startOffset元素. 注意pivotX动画中X的中间坐标,如旋转:50是指相对父View的50%,50%是相对自身View的50% 例子: <set android:shareInterpolator="false">

android 补间动画

android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能.如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动.旋转.缩放等.自动生成中间图像的动画,补间动画,只需指定第一帧和最后一帧. 补间动画的优点是节省硬盘空间,缺点是,无法生成复杂的动画.本文主要介绍经常用到的四种补间动画:移动.缩放.旋转.透明度. 1.移动补间动画 移动是比较常见的动画效果.通过xml文件或者java代码能够实现补间动画的移动效果.在res/anim,

Android 之 补间动画

补间动画的优点是可以节省空间.补间动画与逐帧动画在本质上是不同的,逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的.目前Android应用框架支持的补间动画效果有以下5种.具体实现在android.view.animation类库中. (1)AlphaAnimation: 透明度(alpha)渐变效果,对应<alpha/>标签. (2)TranslateAnimation: 位移渐变,需要指定移动点的开始和结束坐标,对应<transl

实现逐帧动画和补间动画两种动画效果

1.逐帧动画(Frame Animation)通常在Android项目的res/drawable/目录下面定义逐帧动画的XML模板文件.编码的时候,需要在动画模板文件的<animation-list>标签中依次放入需要播放的图片,并设置好播放的间隔时间. <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"

Android开发之补间动画、

四种补间动画: 1.透明: 2.缩放: 3.位移: 4.旋转: 1 //点击按钮 实现iv 透明的效果 动画 2 public void click1(View v) { 3 //1.0意味着着完全不透明 0.0意味着完全透明 4 AlphaAnimation aa = new AlphaAnimation(1.0f, 0.0f); 5 aa.setDuration(2000); //设置动画执行的时间 6 aa.setRepeatCount(1); //设置重复的次数 7 aa.setRepe

Android开发之Tween(补间动画)完全解析(一)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51912104 相信不管做了多长时间开发的人都用过Tween动画,从刚开始工作到现在我也是用了N次Tween动画,但是每一次使用总感觉掌握的不够全面,所以花了点时间详细的总结了下Tween动画,其实在android中熟练掌握动画,能够帮助我们实现一些非常酷炫的效果从而使我们的app在交互或者用户体验上有一个更好的体验,鉴于此详细的学习动画还是很有必要的,相信通过本篇的学习大家会对T

Android 动画系列之自定义补间动画

转载请标明出处: http://blog.csdn.net/Airsaid/article/details/51591282 本文出自:周游的博客 前言 上一篇写了补间动画的使用,由于篇幅原因,就把自定义补间动画单独拿出来了.这一篇继续写补间动画~ 在上一篇中写到了Android提供了Animation类作为补间动画的抽象基类,并提供了四个子类:ScaleAnimation .TranslateAnimation.AlphaAnimation.RotateAnimation分别实现了四种基本动画