Android图片放大再还原的动画

本例实现一个图片点击之后先放大再缩小的动画效果

首先:图片的XML

    <ImageView
        android:layout_gravity="center_horizontal"
        android:scaleType="center"
        android:id="@+id/red_pic"
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:src="@mipmap/red"/>

接下来:动画效果文件,放置在res/anim/
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="false">
    <!--fillBefore是指动画结束时画面停留在此动画的第一帧;-->
    <!--fillAfter是指动画结束是画面停留在此动画的最后一帧。-->

    <!--
        fromXDelta,fromYDelta   起始时X,Y座标,屏幕右下角的座标是X:320,Y:480
        toXDelta, toYDelta     动画结束时X,Y的座标
        interpolator            指定动画插入器,常见的有
                                加速减速插入器         accelerate_decelerate_interpolator
                                加速插入器             accelerate_interpolator,
                                减速插入器             decelerate_interpolator。
        fromXScale,fromYScale, 动画开始前X,Y的缩放,0.0为不显示,  1.0为正常大小
        toXScale,toYScale,    动画最终缩放的倍数, 1.0为正常大小,大于1.0放大
        pivotX,  pivotY        动画起始位置,相对于屏幕的百分比,两个都为50%表示动画从屏幕中间开始
        startOffset,           动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间,单位毫秒
        duration,              一次动画效果消耗的时间,单位毫秒,值越小动画速度越快
        repeatCount,           动画重复的计数,动画将会执行该值+1次
        repeatMode,            动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。restart为重新执行,方向不变
        -->

    <!--先放大-->
    <scale
        android:duration="300"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="2"
        android:toYScale="2" />
    <!--然后缩小-->
    <scale
        android:duration="300"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:startOffset="300"
        android:toXScale="0.5"
        android:toYScale="0.5" />
</set>
初始化动画对象,并加载我们在之前动画资源当中的预设

Animation animation;
animation= AnimationUtils.loadAnimation(this,R.anim.anim_small);

图片的点击事件当中开始动画

redPic.startAnimation(animation);


发布了35 篇原创文章 · 获赞 11 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览