Android的动画可以分为视图动画和属性动画
1. View Animation(Tween Animation)----- 视图动画
不改变原有动画属性2. Drawable Animation(Frame Animation)----- 属性动画
button旋转效果
效果图1
代码编辑
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(this);
}
@Override
public void onClick(View v) {
//属性动画(旋转360度)
v.animate().rotation(360).setDuration(1000).start();
}
}
XML配置
res中Animator文件夹(没有就新建),配置动画文件 animate.xml:<?xml version="1.0" encoding="utf-8"?>
<!--对象动画-->
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360">
</objectAnimator>
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(this);
}
@Override
public void onClick(View v) {
// //属性动画(旋转360度)
//-----1------代码编辑
// v.animate().rotation(360).setDuration(1000).start();
//-----2------XML编辑
//对象动画
ObjectAnimator animatior = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.animate);
animatior.setTarget(v);
animatior.start();
}
}
透明度 + 平移
效果图2
animator_set.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="1000"
android:propertyName="alpha"
android:valueFrom="0"
android:valueTo="1" />
<!--动画命名和属性相关-->
<objectAnimator
android:duration="1000"
android:propertyName="Y"
android:valueFrom="0"
android:valueTo="200" />
</set>
MainActivity.java
public class MainActivity