Android 的缩放动画
最近突发奇想想要实现一下最近比较热门的类似于“电子木鱼”的功能,但是敲木鱼时木鱼要有敲击的动画吧,尝试使用缩放动画实现。
效果
在res下新建anim文件夹
在anim文件夹下新建一个muyutranslate.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:repeatMode="reverse" android:repeatCount="1" android:duration="300" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="0.9" android:toYScale="0.9" android:pivotX="50%" android:pivotY="50%"/>
</set>
注
android:repeatMode="reverse"//重复类型有两个值,reverse表示倒序回放,restart表示从头播放 android:repeatCount="1"//重复次数 android:duration="300"//持续时间,单位为毫秒,持续1秒则为1000 android:fromXScale="1.0"//初始X轴缩放比例,1.0表示无变化 android:fromYScale="1.0" android:toXScale="0.9"//结束X轴缩放比例 android:toYScale="0.9" android:pivotX="50%"//缩放起点X轴坐标
(数值、百分数、百分数p,
譬如50表示以当前View左上角坐标加50px为初始点、
50%表示以当前View的左上角加上当前View宽高的50%做为初始点、
50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) android:pivotY="50%"/>
Image控Button的信息,ImageButton的src设置为木鱼,敲一次木鱼相当于点击了一下ImageButton
<ImageButton android:id="@+id/ib_woodenfish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="56dp" android:background="@null" android:src="@drawable/ic_woodenfish" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.509" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_generalmerits" />
java中的相关代码
public class MainActivity extends Activity { private ImageButton ib_woodenfish; private Animation animation = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ib_woodenfish=findViewById(R.id.ib_woodenfish); animation = AnimationUtils.loadAnimation(this, R.anim.muyutranslate); ib_woodenfish.setOnClickListener(new View.OnClickListener() { @SuppressLint("ResourceType") @Override public void onClick(View v) { ib_woodenfish.startAnimation(animation);//点击后触发动画! //。。。其他乱七八糟的已省略 } }); } }
点击后就会看到木鱼缩放效果。