您的位置:

Android缩放动画

一、缩放动画介绍

Android缩放动画,是改变控件大小的一种动画效果。通常会配合其他动画效果,例如位移动画、旋转动画等等,来实现更加生动的界面效果。

下面是一个简单的缩放动画示例:

mAnimateBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        AnimationSet animationSet = new AnimationSet(true);
        animationSet.setInterpolator(new AccelerateDecelerateInterpolator());
        animationSet.addAnimation(new ScaleAnimation(1, 1.5f, 1, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f));
        animationSet.setDuration(1000);
        animationSet.setFillAfter(true);
        mImageView.startAnimation(animationSet);
    }
});

以上代码实现了当用户点击按钮时,图片控件会从原大小缩放到1.5倍的大小。

二、缩放动画属性

缩放动画的实现依靠了ScaleAnimation类。以下是ScaleAnimation类提供的属性:

  • fromX:动画起始时 X轴的伸缩尺寸
  • toX:动画结束时 X轴的伸缩尺寸
  • fromY:动画起始时Y轴的伸缩尺寸
  • toY:动画结束时Y轴的伸缩尺寸
  • pivotXType:缩放中心点的X轴坐标的类型
  • pivotXValue:缩放中心点的X轴坐标的相对位置
  • pivotYType:缩放中心点的Y轴坐标的类型
  • pivotYValue:缩放中心点的Y轴坐标的相对位置

其中,伸缩尺寸的值必须在0~1之间,且0表示完全收缩,1表示完全伸展。缩放中心点的相对位置是以控件的大小为基准的,取值范围在0~1之间。

三、缩放动画示例

1. 点击时缩放

实现效果:当用户点击按钮时,按钮控件会从原大小缩放到1.2倍的大小再缩放回原大小。

mScaleBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        AnimationSet animationSet = new AnimationSet(true);
        animationSet.setInterpolator(new AccelerateDecelerateInterpolator());
        animationSet.addAnimation(new ScaleAnimation(1, 1.2f, 1, 1.2f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f));
        animationSet.setDuration(300);
        animationSet.addAnimation(new ScaleAnimation(1.2f, 1f, 1.2f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f));
        animationSet.setDuration(300);
        mScaleBtn.startAnimation(animationSet);
    }
});

2. 逐渐缩小

实现效果:控件开始时大小为填充父布局,逐渐减小到原大小。

mScaleLayout.post(new Runnable() {
    @Override
    public void run() {
        float fromX = (float) mScaleLayout.getWidth() / mScaleLayout.getParent().getWidth();
        float fromY = (float) mScaleLayout.getHeight() / mScaleLayout.getParent().getHeight();
        float toX = 1.0f;
        float toY = 1.0f;
        ScaleAnimation scaleAnimation = new ScaleAnimation(fromX, toX, fromY, toY, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        scaleAnimation.setDuration(500);
        mScaleLayout.startAnimation(scaleAnimation);
    }
});

3. 逐渐放大

实现效果:控件开始时大小为原大小,逐渐增大到填充父布局。

mScaleLayout.post(new Runnable() {
    @Override
    public void run() {
        float fromX = 1.0f;
        float fromY = 1.0f;
        float toX = (float) mScaleLayout.getWidth() / mScaleLayout.getParent().getWidth();
        float toY = (float) mScaleLayout.getHeight() / mScaleLayout.getParent().getHeight();
        ScaleAnimation scaleAnimation = new ScaleAnimation(fromX, toX, fromY, toY, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        scaleAnimation.setDuration(500);
        mScaleLayout.startAnimation(scaleAnimation);
    }
});

四、总结

缩放动画是一种常见的动画效果,可以让界面变得更加生动。android缩放动画可以很方便地通过ScaleAnimation类来实现,并且可以根据需求进行自定义。在实际开发应用中,需要根据界面效果的要求来选择不同的动画实现方法,以达到最佳的用户交互效果。

Android缩放动画

2023-05-16
提升用户体验的一种方式——Android视图缩放动画

2023-05-14
印象笔记记录java学习(Java成长笔记)

2022-11-12
如何使用PS鼠标滚轮放大缩小

2023-05-10
python画图笔记(python画图作业)

2022-11-10
sw单轴缩放,SW比例缩放

2023-01-08
最新python学习笔记3,python基础笔记

2022-11-17
java方法整理笔记(java总结)

2022-11-08
提升用户体验的Android动画效果

Android应用程序需要拥有良好的用户体验才能吸引用户,动画效果是一个提高用户体验的重要方面。在本文中,将会介绍一些可以提升用户体验的Android动画效果,并提供完整的代码示例。以下是几个方面的详

2023-12-08
打造流畅的动画效果:Android补间动画详解

2023-05-14
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
Android Canvas 开发详解

2023-05-18
等待动画沙漏,动画沙漏计时

2023-01-09
Android应用中使用转场动画的方法和实例

2023-05-14
java学习笔记(java初学笔记)

2022-11-14
python基础学习整理笔记,Python课堂笔记

2022-11-21
私有云笔记:无界写作的安全保障

2023-05-17
java笔记,大学java笔记

2022-11-28
Android图片处理神器Glide:高效加载、缩放、裁剪图

一、Glide简介 Glide是一款Android平台上的图片加载和缓存库。它首先是谷歌推出的,它可以处理本地和远程图像,并可以自定义处理每一帧。Glide内存使用相对较少,因此即使在加载大量图像或在

2023-12-08
solidworks导出爆炸动画,solidworks201

2023-01-05