View动画(补间动画)
1.在res目录下创建一个anim目录,在anim目录下创建一个anim.xml文件(文件名任意取)。在anim.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:repeatMode="restart"
android:fillAfter="true"
android:shareInterpolator="true">
<!--android:fillAfter="true" 动画结束后是否停留在结束位置-->
<!--android:shareInterpolator="true" 是否共享同一个插补器-->
<!--View动画xml格式-->
<!--透明动画:从完全不透明,到透明度为0.2-->
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.2" />
<!--平移动画 向X轴Y轴移动100dp-->
<translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100"
android:toYDelta="100" />
<!--旋转动画 以(100,100)为中心点,从0°旋转到90°-->
<rotate
android:fromDegrees="0"
android:pivotX="1"
android:pivotY="1"
android:toDegrees="720" />
<!--缩放动画 以(100,100)为参考点,以X,Y轴从原始大小缩小0.5倍-->
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="0"
android:pivotY="0"
android:toXScale="0.5"
android:toYScale="0.5" />
</set>
2.在MainActivity文件中
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.tv);
mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
xmlAnim(v);
}
});
}
private void xmlAnim(View view) {
Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim);
animation.setInterpolator(new OvershootInterpolator());//设置插补器
view.startAnimation(animation);
}
}