精华内容
下载资源
问答
  • android 垂直缩放动画效果
  • Android 缩放动画 ScaleAnimation

    千次阅读 2020-09-15 17:23:09
    ScaleAnimation即缩放动画,应用场景特别多,比如常见的隐藏菜单点击显示 下面我分两种方式来介绍ScaleAnimation如何使用。 1. xml文件形式 文件名:anim_scale_in.xml 效果:呈现view放大显示效果 源码: &...

    什么是ScaleAnimation

    ScaleAnimation即缩放动画,应用场景特别多,比如常见的隐藏菜单点击显示

    下面我分两种方式来介绍ScaleAnimation如何使用。

    1. xml文件形式
    文件名:anim_scale_in.xml
    效果:呈现view放大显示效果
    源码:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/decelerate_interpolator"
            android:duration="1000"
            android:fillAfter="true"
            android:fromXScale="0.0"
            android:fromYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.0"
            android:toYScale="1.0" />
    </set>

    属性解释:
    interpolator:动画插入器,该功能在xml里设置貌似无效,需在代码中加
    fromXScale:从自身x轴长度多少倍开始缩放,如:fromXScale= 0.5表示从自身X轴长度0.5倍开始缩放
    toXScale:缩放到自身x轴长度多少倍结束,如:toXScale = 2.0表示x轴缩放到自身x轴长度2倍结束
    上面两条意思就是:该view的x轴从自身x轴长度的0.5倍开始缩放到自身x轴长度的2倍结束
    fromYScale:从自身y轴长度多少倍开始缩放,如:fromYScale= 0.5表示从自身y轴长度0.5倍开始缩放
    toYScale:缩放到自身y轴长度多少倍结束,如:toYScale = 2.0表示x轴缩放到自身y轴长度2倍结束
    pivotX:动画相对于控件X坐标的开始位置
    pivotY:动画相对于控件Y坐标的开始位置
    如:pivotX = 50%,pivotY = 50% 表示从该控件的中心开始缩放

       //表示控件左下角开始
       android:pivotX="0"
       android:pivotY="100%"
    
       //表示控件左上角开始
       android:pivotX="0"
       android:pivotY="0"
    
       //表示控件右下角开始
        android:pivotX="100%"
        android:pivotY="100%"
    
       //表示控件右上角开始
       android:pivotX="100%"
       android:pivotY="0"

     

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="1000"
            android:fillAfter="true"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0"
            android:toYScale="0" />
    </set>

     

    OK,现在有了xml布局文件,我们需要用Java代码让他工作起来,如下;

     /**
         * 缩放变大动画
         *
         * @param context
         * @param view 目标view
         */
        public static void startScaleInAnim(Context context, View view) {
            Animation animation = AnimationUtils.loadAnimation(context, R.anim.anim_scale_in);
            if (view != null)
                view.startAnimation(animation);
        }
    
        /**
         * 缩放缩小动画
         *
         * @param context
         * @param view 目标view
         */
        public static void startScaleOutAnim(Context context, View view) {
            Animation animation = AnimationUtils.loadAnimation(context, R.anim.anim_scale_out);
            if (view != null)
                view.startAnimation(animation);
        }

    我单独封装在一个动画工具类中,哪里需要就哪里调用。


    下面看看代码的执行效果:
    这里写图片描述

    缩放同时还可以添加透明度变化,如下:

    放大+淡入:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/decelerate_interpolator"
            android:duration="1000"
            android:fillAfter="true"
            android:fillEnabled="true"
            android:fromXScale="0"
            android:fromYScale="0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.0"
            android:toYScale="1.0" />
        <!--同时配置淡入功能-->
        <alpha
            android:duration="700"
            android:fillAfter="true"
            android:fromAlpha="0"
            android:toAlpha="1" />
    </set>

    缩小+淡出

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="1000"
            android:fillAfter="true"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0"
            android:toYScale="0" />
        <!--同时配置淡出功能-->
        <alpha
            android:duration="700"
            android:fillAfter="true"
            android:fromAlpha="1"
            android:toAlpha="0" />
    </set>

    效果如下:
    这里写图片描述

    下拉菜单显示与收回,效果:

    显示:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/decelerate_interpolator"
            android:duration="300"
            android:fillAfter="true"
            android:fillEnabled="true"
            android:fromXScale="1.0"
            android:fromYScale="0"
            android:pivotX="100%"
            android:pivotY="0"
            android:toXScale="1.0"
            android:toYScale="1.0" />
        <!--同时配置淡入功能-->
        <alpha
            android:duration="300"
            android:fillAfter="true"
            android:fromAlpha="0"
            android:toAlpha="1" />
    </set>

    收起:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="300"
            android:fillAfter="true"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="100%"
            android:pivotY="0"
            android:toXScale="1.0"
            android:toYScale="0" />
        <!--同时配置淡出功能-->
        <alpha
            android:duration="300"
            android:fillAfter="true"
            android:fromAlpha="1"
            android:toAlpha="0" />
    </set>

    效果:
    这里写图片描述

    缩放下拉与收回效果:

    显示:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/decelerate_interpolator"
            android:duration="200"
            android:fillAfter="true"
            android:fillEnabled="true"
            android:fromXScale="0"
            android:fromYScale="0"
            android:pivotX="100%"
            android:pivotY="0"
            android:toXScale="1.0"
            android:toYScale="1.0" />
        <!--同时配置淡入功能-->
        <alpha
            android:duration="200"
            android:fillAfter="true"
            android:fromAlpha="0"
            android:toAlpha="1" />
    </set>

    收起:

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="200"
            android:fillAfter="true"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="100%"
            android:pivotY="0"
            android:toXScale="0"
            android:toYScale="0" />
        <!--同时配置淡出功能-->
        <alpha
            android:duration="200"
            android:fillAfter="true"
            android:fromAlpha="1"
            android:toAlpha="0" />
    </set>

    效果:
    这里写图片描述

    类似游戏按钮的按下放大再还原效果:

      public static void animScaleIn(View view){
            //缩放动画
            ScaleAnimation animation = new ScaleAnimation(1,1.2f,1,1.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
            animation.setDuration(100);
            animation.setFillAfter(true);
            animation.setRepeatMode(Animation.REVERSE);
            animation.setRepeatCount(1);
    
            //透明度动画
            AlphaAnimation animation1 = new AlphaAnimation(1,0.8f);
            animation1.setDuration(100);
            animation1.setRepeatCount(1);
            animation1.setRepeatMode(Animation.REVERSE);
            animation1.setFillAfter(true);
    
            //装入AnimationSet中
            AnimationSet set = new AnimationSet(true);
            set.addAnimation(animation);
            set.addAnimation(animation1);
    
            if (view != null)
            view.startAnimation(set);
    
        }

    效果如下:

    这里写图片描述

    备注:由于我的图片是导出视频再用PS转换成的gif,故效率上有所损失,实际动画效果和速度比图片的快。

    展开全文
  • 相对于中心点的Android图像缩放动画我有一个ImageView,我做了一个简单的比例动画。 非常标准的代码。我的scale_up.xml:android:fromYScale="1"android:toXScale="1.2"android:toYScale="1.2"android:duration="175...

    相对于中心点的Android图像缩放动画

    我有一个ImageView,我做了一个简单的比例动画。 非常标准的代码。

    我的scale_up.xml:

    android:fromYScale="1"

    android:toXScale="1.2"

    android:toYScale="1.2"

    android:duration="175"/>

    我的动画代码:

    Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);

    ((ImageView) findViewById(R.id.circle_image)).startAnimation(a);

    问题:

    当图像缩放时,它不会从中心缩放,而是从左上角缩放。 换句话说,图像的缩放版本与中心不具有相同的点,但它具有相同的左上角点。 这是一个解释我的意思的链接。 第一个图像是动画如何缩放,第二个图像是我希望它如何缩放。 它应该保持中心点相同。 我已经尝试在图像上设置重力,在容器上,左对齐或右对齐,它总是按比例缩放。我正在使用RelativeLayout作为主屏幕,ImageView位于另一个RelativeLayout,但我尝试了其他布局,没有改变。

    4个解决方案

    136 votes

    50%p是动画视图的中心。

    50%p是父母的中心

    android:fromXScale="1.0"

    android:toXScale="1.2"

    android:fromYScale="1.0"

    android:toYScale="1.2"

    android:pivotX="50%p"

    android:pivotY="50%p"

    android:duration="175"/>

    Jiang Qi answered 2019-05-06T16:29:57Z

    91 votes

    @stevanveltema和@JiangQi提供的答案是完美的,但如果你想使用代码进行缩放,那么你可以使用我的答案。

    // first 0f, 1f mean scaling from X-axis to X-axis, meaning scaling from 0-100%

    // first 0f, 1f mean scaling from Y-axis to Y-axis, meaning scaling from 0-100%

    // The two 0.5f mean animation will start from 50% of X-axis & 50% of Y-axis, i.e. from center

    ScaleAnimation fade_in = new ScaleAnimation(0f, 1f, 0f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

    fade_in.setDuration(1000); // animation duration in milliseconds

    fade_in.setFillAfter(true); // If fillAfter is true, the transformation that this animation performed will persist when it is finished.

    view.startAnimation(fade_in);

    Rohan Kandwal answered 2019-05-06T16:30:22Z

    65 votes

    忘记额外的翻译,将android:pivotX,233565181516743681设置为宽度和高度的一半,它将从图像的中心缩放。

    Steven Veltema answered 2019-05-06T16:29:24Z

    5 votes

    您可以使用集合中的平移动画来抵消它。 您可能需要调整toXDelta和toYDelta值以使其正确,以使图像保持居中。

    android:fromYScale="1"

    android:toXScale="1.2"

    android:toYScale="1.2"

    android:duration="175"/>

    android:fromXDelta="0"

    android:fromYDelta="0"

    android:toXDelta="-20%"

    android:toYDelta="-20%"

    android:duration="175"/>

    Aldryd answered 2019-05-06T16:30:47Z

    展开全文
  • 主要给大家介绍了关于Android Reveal圆形Activity转场动画的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • To add the FocusResize library to your Android Studio project, simply add the following gradle dependency, with min sdk version of 19: compile 'com.borjabravo:focusresize:1.0.0' Usage To use the ...
  • SimpleRatingBar 一个简单带缩放动画的RatingBar打分效果
  • 我有一个ImageView,我做一个简单的缩放动画。非常标准的代码。我的scale_up.xml:android:fromYScale="1"android:toXScale="1.2"android:toYScale="1.2"android:duration="175"/>我的动画代码:Animation a = ...

    我有一个ImageView,我做一个简单的缩放动画。非常标准的代码。

    我的scale_up.xml:

    android:fromYScale="1"

    android:toXScale="1.2"

    android:toYScale="1.2"

    android:duration="175"/>

    我的动画代码:

    Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);

    ((ImageView) findViewById(R.id.circle_image)).startAnimation(a);

    问题:

    当图像缩放时,它不会从中心缩放,而是从左上角开始缩放。换句话说,图像的缩放版本不具有与中心相同的点,但是它具有相同的左上点。 Here’s a link that explains what I mean.第一个图像是动画的缩放,第二个图像是我想要的缩放。它应该保持中心点相同。我试着在图像上设置重力,在容器上,左右对齐,它总是缩放相同。

    我使用RelativeLayout为主屏幕和ImageView位于另一个RelativeLayout,但我尝试其他布局,没有改变。

    展开全文
  • Android view动画之缩放动画

    千次阅读 2021-03-17 19:41:31
    用 AnimationUtils 和 xml 的方式,加载指定的缩放动画。 Animation scaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale_animation); scaleAnimation.setFillAfter(true); mImageView....

    方法一

    用 AnimationUtils 和 xml 的方式,加载指定的缩放动画。

    Animation scaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale_animation);
    scaleAnimation.setFillAfter(true);
    mImageView.startAnimation(scaleAnimation);
    

    scale_animation.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
        <!--
            android:fromXScale
            Float. 水平方向缩放比例的初始值,其中1.0是没有任何变化。
            android:toXScale
            Float. 水平方向缩放比例的结束值,其中1.0是没有任何变化。
            android:fromYScale
            Float. 竖直方向缩放比例的初始值,其中1.0是没有任何变化。
            android:toYScale
            Float. 竖直方向缩放比例的结束值,其中1.0是没有任何变化。
            android:pivotX
            Float. 缩放中心点的x坐标
            android:pivotY
            Float. 缩放中心点的y坐标
        -->
    
        <scale
            android:duration="5000"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0.5"
            android:toYScale="0.5" />
    </set>
    

    这个效果是缩小。

    方法二

    直接代码设置,效果是放大。

    ScaleAnimation scaleAnim = new ScaleAnimation(1, 1.5f, 1,1.5f);
    scaleAnim.setFillAfter(true);
    mImageView.startAnimation(scaleAnim);
    

    方法三

    属性动画实现,

    //利用AnimatorSet和ObjectAnimator实现缩放动画
    final AnimatorSet animatorSet = new AnimatorSet();
    mImageView.setPivotX(mImageView.getWidth() / 2);
    mImageView.setPivotY(mImageView.getHeight() / 2);
    animatorSet.playTogether(
                        ObjectAnimator.ofFloat(mImageView, "scaleX", 1, 1.5f).setDuration(5000),
                        ObjectAnimator.ofFloat(mImageView, "scaleY", 1, 1.5f).setDuration(5000));
    animatorSet.start();
    
    展开全文
  • android缩放动画的两种实现方法

    千次阅读 2017-06-17 14:06:00
    我们会常常使用到缩放动画,普通情况下缩放动画有两种实现方式。一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: Java代码实现: //创建缩放动画对象 Animation ...
  • 属性动画的出现,弥补了补间动画的不足之处,补间动画,只是改变了表面上的东西,但是其中属性并未改变,而属性动画相反,改变了表面上的东西,并且也更改了其属性。 类:ObjectAnimator 用于操作属性动画的类 ...
  • 这三个“缩放”的具体含义如下:窗口动画缩放:Scaling factor for normal window animations. Setting to 0 will disable window animations. //作用于非Activity窗口过渡动画缩放:Scaling factor for activity ...
  • 如何在Android中实现图片及动画缩放和旋转.doc
  • AnimatorSet animatorSetsuofang = new ...//组合动画 ObjectAnimator scaleX = ObjectAnimator.ofFloat("执行动画的控件", "scaleX", 1, 1.1f,1);//后几个参数是放大的倍数 ObjectAnimator scaleY = ObjectA...
  • Android 平移动画 缩放动画=集合动画,实现开机启动页 通过线程休眠事件跳转到主界面,Android 平移动画 缩放动画->实现开机启动页: 1、通过集合动画 线程实现开机启动动画界面。 2、设置了休眠时间,休眠过后实现...
  • Android改变图片透明度跟缩放动画效果 博客地址:http://blog.csdn.net/lowprofile_coding/article/details/45740677
  • 在上一篇,简要的介绍了Android动画分类及基本区别,本篇文章将会详细接收Android补间动画中的缩放动画各种使用方法,方便自己及广大开发人员在需要时快速查看。 话不多说,我们先以一个GIF图来展示具体效果。 2...
  • Android ObjectAnimator:缩放动画填充在动画结束时,Drawable内部被调整大小,但不是ImageView边框的大小。XML ImageView的代码android:layout_width="wrap_content"android:layout_height="wrap_content"andro.....
  • 缩放动画后的视图,没有调整到新位置.我使用安卓动画(ScaleAnimation)制作布局(开始时的屏幕尺寸),自身缩放到0.95倍,缩放参考屏幕中心点.final AnimationListener al2 = new AnimationListener() {@Overridepublic ...
  • 主要为大家详细介绍了Android自定义ImageView实现自动放大缩小动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 缩放动画(ScaleAnimation)简介 以控件的中心点为中心做缩小或放大的动作,缩放动画可以实现view有小到大或者由大到小的缩放效果。 缩放动画属性 缩放动画使用scale标签标示,主要有一下几个属性 属性 描述 ...
  • 一个帮助您完成从缩略图到原图无缝过渡转变的神奇组件,缩略图到原图的无缝过渡转变,功能体系仿照并涵盖 ios 版本的 QQ、微信朋友圈、新浪微博的图片浏览功能(请使用32位解压缩工具)。
  • Android动画之移动缩放动画

    千次阅读 2018-12-19 10:37:22
    最近写了一个移动缩小动画,故来记录一下,以防忘记。先上图—— 主要代码: /** * 如果是从现在的位置移动到别的位置,那么初始XY的值都是0,向左边,那么结束X值就是 负数,向右则是正数,上下亦是如此 * ...
  • Android 动画 - ScaleAnimation 缩放动画使用(附图)

    万次阅读 多人点赞 2016-06-07 15:10:45
    ScaleAnimation:缩放动画同样,创建ScaleAnimation也有两种方式 XML文件+Java代码 Java代码方式 XML文件+Java代码效果图: 文件目录:res/anim/scale.xml <scale xmlns:android="http://schemas.android.com/apk/r
  • Android 安卓动画 补间动画 - 缩放动画

    千次阅读 多人点赞 2018-08-31 19:36:54
    补间动画之缩放动画 实现效果:点击按钮后实现按钮放大效果 补间动画概念:就是从一个画面过渡到另一个画面时让人看到中间动画效果! 动画 - 相关文章篇 帧动画 帧动画: ...
  • 缩放 AnimatorSet animatorSetsuofang = new AnimatorSet();//组合动画 ObjectAnimator scaleX = ObjectAnimator.ofFloat(myyuan, "scaleX", 0, 1f); ObjectAnimator scaleY = ObjectAnimator.ofFloat(myyuan, ...
  • 本文实例讲述了Android动画之渐变动画(Tween Animation)。分享给大家供大家参考,具体如下: Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、...
  • Android 基于控件位置的缩放转场动画

    千次阅读 2017-03-30 10:04:30
    <item name="android:windowBackground">@android:color/transparent <item name="android:windowAnimationStyle">@null <item name="android:windowIsTranslucent">true 还有就是如果系统主题是 @android:...
  • 基于android studio android中常见动画,可以修改。 简单好用
  • Android控件入门-动画效果(缩放动画)

    千次阅读 2019-02-24 21:29:19
    缩放动画效果(scale) 第一种: xml: &lt;Button android:id="@+id/btn_scale" android:layout_width="match_parent" android:layout_height="wrap_content" android:text...
  • android实现旋转、平移、缩放和透明度渐变的补间动画,具体实现如下: 1.在新建项目的res目录中,创建一个名为anim的目录,并在该目录中创建实现旋转、平移、缩放和透明度渐变的动画资源文件。 透明度渐变的动画资源...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,568
精华内容 14,627
关键字:

缩放动画android