Androidアニメの補間アニメ(Tween Animation)の基礎学習
前言
前にも言ったように、Androidでは、アニメーションアニメーションの実現には、Tween AnimationとFrame Animationの2つの方法があります。グラデーションアニメーションは、シーン中のオブジェクトに対して画像変換(平行移動、拡大縮小、回転など)を繰り返し行うことによりアニメーション効果が得られます。フレームアニメーションは、事前に用意された画像を順番に再生することによって、アニメーション効果が得られます。映画と似ています。
小编もフレームごとのアニメーションの基础知识を共有しました。次はAndroidの中のアニメ毎フレームの基础知识を学びます。
原理:開始と終了の2つのキーフレームを与え、2つのキーフレームの間の補間フレームはコンピュータによって自動的に演算される。
分類:
方式:
1.コード内
効果
コード
第一歩:アニメーションリソースの準備
目次
ステップ3:MainActivity.java
以上のAndroidで補間アニメ(Tween Animation)の基本的な内容は全部です。アニメAnimationで実現された二つの方式の小編は今は皆さんに共有されています。Androidの開発者の方々に助けていただきたいです。
前にも言ったように、Androidでは、アニメーションアニメーションの実現には、Tween AnimationとFrame Animationの2つの方法があります。グラデーションアニメーションは、シーン中のオブジェクトに対して画像変換(平行移動、拡大縮小、回転など)を繰り返し行うことによりアニメーション効果が得られます。フレームアニメーションは、事前に用意された画像を順番に再生することによって、アニメーション効果が得られます。映画と似ています。
小编もフレームごとのアニメーションの基础知识を共有しました。次はAndroidの中のアニメ毎フレームの基础知识を学びます。
原理:開始と終了の2つのキーフレームを与え、2つのキーフレームの間の補間フレームはコンピュータによって自動的に演算される。
分類:
AlphaAnimation
(透明度)ScaleAnimation
(スケーリング)TranslateAnimation
(シフト)RotateAnimation
(回転)AnimationSet
(組み合わせ)方式:
1.コード内
new
2.アニメのxmlリソースをアニメフォルダで定義する効果
コード
第一歩:アニメーションリソースの準備
目次
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromAlpha="1.0"
android:interpolator="@android:anim/linear_interpolator"
android:toAlpha="0.3">
</alpha>
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/linear"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:duration="2000"
android:fromDegrees="0"
android:toDegrees="1080">
android:pivotX="50%"
android:pivotY="50%"
</rotate>
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:duration="2000"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.3"
android:toYScale="0.3">
</scale>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:duration="2000"
android:fromXDelta="10"
android:fromYDelta="10"
android:toXDelta="300"
android:toYDelta="300">
</translate>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:duration="2000">
<alpha android:fromAlpha="0.3"
android:toAlpha="1.0"/>
<rotate android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="0"
android:pivotY="0"
android:repeatMode="restart"
android:repeatCount="infinite"/>
</set>
ステップ2:activity_main.xml(略)ステップ3:MainActivity.java
package com.lyp.anim;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btnScale;
private Button btnRotate;
private Button btnTranslate;
private Button btnAlpha;
private Button btnAll;
private ImageView mImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
btnScale= (Button) findViewById(R.id.btn_scale);
btnRotate= (Button) findViewById(R.id.btn_rotate);
btnTranslate= (Button) findViewById(R.id.btn_translate);
btnAlpha= (Button) findViewById(R.id.btn_alpha);
btnAll= (Button) findViewById(R.id.btn_all);
mImage= (ImageView) findViewById(R.id.image);
btnScale.setOnClickListener(this);
btnRotate.setOnClickListener(this);
btnTranslate.setOnClickListener(this);
btnAlpha.setOnClickListener(this);
btnAll.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_scale:
//
Animation scale = AnimationUtils.loadAnimation(this, R.anim.scale);
scale.setFillAfter(true); // , xml !!
mImage.startAnimation(scale);
break;
case R.id.btn_rotate:
//
Animation rotate = AnimationUtils.loadAnimation(this, R.anim.rotate);
mImage.startAnimation(rotate);
break;
case R.id.btn_translate:
//
Animation translate = AnimationUtils.loadAnimation(this, R.anim.translate);
mImage.startAnimation(translate);
break;
case R.id.btn_alpha:
//
Animation alpha = AnimationUtils.loadAnimation(this, R.anim.alpha);
mImage.startAnimation(alpha);
break;
case R.id.btn_all:
//
Animation all = AnimationUtils.loadAnimation(this, R.anim.all);
mImage.startAnimation(all);
break;
}
}
}
締め括りをつける以上のAndroidで補間アニメ(Tween Animation)の基本的な内容は全部です。アニメAnimationで実現された二つの方式の小編は今は皆さんに共有されています。Androidの開発者の方々に助けていただきたいです。