您的位置:首页 > 移动开发 > Android开发

4.4.5 Android 属性动画Animator

2016-03-08 22:50 519 查看
0:首先在res下面创建一个animator的文件夹。然后再这里面创建一个文件animator.xml

其实这里的valueType 也可以不写,因为如果写了写错了就不会执行了,

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">
<objectAnimator android:duration="5000"
android:propertyName="rotation"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="720"
/>
<objectAnimator android:duration="5000"
android:propertyName="translationX"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="300"
></objectAnimator>
</set>



1:布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/composer_camera"
android:id="@+id/composer_camera"
android:onClick="animator"/>
</RelativeLayout>


2:

package tech.androidstudio.animatordemo;

import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}

public void animator(View view) {
ImageView imageView =(ImageView)findViewById(R.id.composer_camera);
Animator animator_camera = AnimatorInflater.loadAnimator(this,R.animator.animator);
animator_camera.setTarget(imageView);
animator_camera.start();
Toast.makeText(this,"clicked",Toast.LENGTH_LONG).show();
}
}


4: 如果要实现回收的效果

首先在animator 里面创建回收的xml 文件

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together">
<objectAnimator android:duration="5000"
android:propertyName="rotation"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="720"
/>
<objectAnimator android:duration="5000"
android:propertyName="translationX"
android:valueType="floatType"
android:valueFrom="300"
android:valueTo="0"
></objectAnimator>
</set>


然后在MainActivity 里面添加一个全局变量mOut来判断是否出去了还是回到了原地。

package tech.androidstudio.animatordemo;

import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private static boolean mOut=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}

public void animator(View view) {
ImageView imageView =(ImageView)findViewById(R.id.composer_camera);
Animator animator_camera =null;
if(mOut==false) {
animator_camera= AnimatorInflater.loadAnimator(this, R.animator.animator);
mOut=true;
}else{
animator_camera = AnimatorInflater.loadAnimator(this, R.animator.back);
mOut=false;
}
animator_camera.setTarget(imageView);
animator_camera.start();
Toast.makeText(this,"clicked",Toast.LENGTH_LONG).show();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: