之前创建动画利用的代码实现,实则还可以利用xml文件实现。
首先我们需要在res文件夹下创建一个anim文件夹,然后创建四个xml文件
1.alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
//fromAlpha,toAlpha分别表示为起始和结束时的透明度
//startoffset 启动时间
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.3"
android:startOffset="500"
android:duration="1000"/>
</set>
2.rorate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
//fromDegrees 开始的角度
//toDegrees 结束的角度
//pivotX 旋转时X轴坐标
//1)当值为"50",表示绝对位置定位
//2)当值为"50%",表示相对于控件本身定位
//3)当值为"50%p",表示相对于控件的父控件定位
//pivotY 旋转时Y轴坐标
//duration 动画的持续时间
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"/>
</set>
3.scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
//fromXScale 起始X轴坐标
//toXScale 结束X轴坐标
//fromYScale 起始Y轴坐标
//toYScale 结束Y轴坐标
//pivotX
//pivotY
<scale
android:fromXScale="1.0"
android:toXScale="0.3"
android:fromYScale="1.0"
android:toYScale="0.3"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"/>
</set>
4.translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromXDelta="0%"
android:toXDelta="100%"
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="1000"/>
</set>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="sc.animationtwo.MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_rotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="旋转"/>
<Button
android:id="@+id/btn_scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="缩放"/>
<Button
android:id="@+id/btn_alpha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="淡入淡出"/>
<Button
android:id="@+id/btn_translate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="移动"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/animations_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private Button btnRotate;
private Button btnScale;
private Button btnAlpha;
private Button btnTranslate;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRotate = (Button) findViewById(R.id.btn_rotate);
btnScale = (Button) findViewById(R.id.btn_scale);
btnAlpha = (Button) findViewById(R.id.btn_alpha);
btnTranslate = (Button) findViewById(R.id.btn_translate);
imageView = (ImageView) findViewById(R.id.animations_image);
btnRotate.setOnClickListener(new RotateListener());
btnAlpha.setOnClickListener(new AlphaListener());
btnScale.setOnClickListener(new ScaleListener());
btnTranslate.setOnClickListener(new TranslateListener());
}
class RotateListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.rorate);
imageView.startAnimation(animation);
}
}
class AlphaListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.alpha);
imageView.startAnimation(animation);
}
}
class ScaleListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale);
imageView.startAnimation(animation);
}
}
class TranslateListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this,R.anim.translate);
imageView.startAnimation(animation);
}
}
}