Android Property Animator(プロパティアニメーション)第2編
Android Property Animator(プロパティアニメーション)の第1編では、
1、xmlファイルを使用して属性アニメーションを作成する方法
ViewAnimator、Drawable Animatorはres/animフォルダの下でアニメーションを作成できることはよく知られています.では、Property Animatorは、まず
では、単純なアニメだけを支持していると思いますか?もし私がどれだけアニメーションを必要としたら?
setラベルを使用すると、
効果図を見てみましょう.
Layout Animations(レイアウトアニメーション)
主に
使用する前に、
LayoutTransition.APPEARING:ビューグループに表示されるビューのアニメーション
LayoutTransition.CHANGE_APPEARING:ビューグループに表示されるビューは、ビューグループ内の他のビューの位置に影響を与え、他のビューのアニメーション
LayoutTransition.DISAPPEARING:ViewがView Groupで消え、そのViewのアニメーション
LayoutTransition.CHANGE_DISAPPEARING:1つのViewがView Groupで消失し、そのViewがそのView Groupの他のView位置に影響を与え、他のViewのアニメーション
ここでは、太字の意味を重点的に区別します.レイアウトファイルを具体的に見てみましょう.
Activityコード:
効果図:
属性アニメーションは簡単に実現できるのではないでしょうか.あなたもやってみてください.効果はきっと素晴らしいです.属性アニメーションの第2編と第1編はすべていくつかの基礎知識で、あなたが興味を持っていくつかの比較的に風を引くことに興味があれば、きらびやかなアニメーション、私たちは一緒に研究することができます.
何か質問がありましたら、どこが間違っているのか、ご指摘ください.
Property Animator
がアニメーションを実現する基本的な流れを知った.この記事では、レイアウトアニメーションと簡単なアニメーション効果について説明します.1、xmlファイルを使用して属性アニメーションを作成する方法
ViewAnimator、Drawable Animatorはres/animフォルダの下でアニメーションを作成できることはよく知られています.では、Property Animatorは、まず
res
フォルダにanimator
フォルダを作成し、animator
フォルダの下に自分のxml
ファイルを作成することをファイルに明記することもできます.例えばres/animator/scale_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2000" android:propertyName="rotationX" android:valueFrom="0.0" android:valueTo="360.0" android:valueType="floatType"></objectAnimator>
Activity
で呼び出すだけです. public void bntXml(View v) {
Animator animator = AnimatorInflater.loadAnimator(this, R.animator.scale_anim);
animator.setTarget(ivFace);
animator.start();
}
では、単純なアニメだけを支持していると思いますか?もし私がどれだけアニメーションを必要としたら?
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">
<objectAnimator android:duration="2000" android:propertyName="rotationX" android:valueFrom="0.0" android:valueTo="360.0" android:valueType="floatType"></objectAnimator>
<objectAnimator android:duration="2000" android:propertyName="scaleX" android:valueFrom="1.0" android:valueTo="2.0" android:valueType="floatType"></objectAnimator>
<objectAnimator android:duration="2000" android:propertyName="scaleY" android:valueFrom="1.0" android:valueTo="2.0" android:valueType="floatType"></objectAnimator>
</set>
setラベルを使用すると、
android:ordering
の属性値がtogether
で一緒に動くことを示し、値がsequentially
で前後順に動くことを示すこともできる.効果図を見てみましょう.
Layout Animations(レイアウトアニメーション)
主に
LayoutAnimation
を使用してレイアウトのコンテナをアニメートし、コンテナ内のビュー階層が変化すると遷移するアニメーション効果があります.使用する前に、
LayoutAnimation
のタイプについて説明します.LayoutTransition.APPEARING:ビューグループに表示されるビューのアニメーション
LayoutTransition.CHANGE_APPEARING:ビューグループに表示されるビューは、ビューグループ内の他のビューの位置に影響を与え、他のビューのアニメーション
LayoutTransition.DISAPPEARING:ViewがView Groupで消え、そのViewのアニメーション
LayoutTransition.CHANGE_DISAPPEARING:1つのViewがView Groupで消失し、そのViewがそのView Groupの他のView位置に影響を与え、他のViewのアニメーション
ここでは、太字の意味を重点的に区別します.レイアウトファイルを具体的に見てみましょう.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">
<Button android:id="@+id/bntXml" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="bntXml" android:text="xml " android:textColor="#ffffff" />
<Button android:id="@+id/bntAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/bntXml" android:onClick="bntAdd" android:text="addBtn " android:textColor="#ffffff" />
<GridLayout android:id="@+id/gridLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/bntXml" android:columnCount="5"></GridLayout>
<ImageView android:id="@+id/ivFace" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@mipmap/face" />
</RelativeLayout>
Activityコード:
package com.github.ws.animationdemo;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.LayoutTransition;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.ImageView;
/** * Created by Administrator on 4/6 0006. */
public class XmlAnimatorActivity extends Activity {
private ImageView ivFace;
private GridLayout gridLayout;
private LayoutTransition transition;
private int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xml_anim);
ivFace = (ImageView) findViewById(R.id.ivFace);
gridLayout = (GridLayout) findViewById(R.id.gridLayout);
transition = new LayoutTransition();
transition.setAnimator(LayoutTransition.APPEARING, ObjectAnimator.ofFloat(gridLayout, "scaleX", 0.0f, 1.0f));
transition.setDuration(1000);
gridLayout.setLayoutTransition(transition);
}
void bntAdd(View view) {
Button btn = new Button(this);
btn.setText(""+count++);
gridLayout.addView(btn,Math.min(1, gridLayout.getChildCount()));
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gridLayout.removeView(view);
}
});
}
public void bntXml(View v) {
Animator animator = AnimatorInflater.loadAnimator(this, R.animator.more_anim);
animator.setTarget(ivFace);
animator.start();
}
}
効果図:
属性アニメーションは簡単に実現できるのではないでしょうか.あなたもやってみてください.効果はきっと素晴らしいです.属性アニメーションの第2編と第1編はすべていくつかの基礎知識で、あなたが興味を持っていくつかの比較的に風を引くことに興味があれば、きらびやかなアニメーション、私たちは一緒に研究することができます.
何か質問がありましたら、どこが間違っているのか、ご指摘ください.