美文网首页Android知识
坑人的视图动画

坑人的视图动画

作者: 墨革 | 来源:发表于2016-10-28 15:28 被阅读74次

以下是一个用视图动画实现先平移后缩放的动画的xml代码

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <translate
        android:duration="1500"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="300"
        android:toYDelta="300" />

    <scale
        android:duration="1500"
        android:startOffset="1500"
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="2"
        android:toYScale="2"
        android:pivotY="50%"
        android:pivotX="50%"/>
  </set>

期望的执行结果是先平移后缩放。可是发现在缩放的时候还是会发生移动,这是怎么回事呢?实验了很多次,都是这样。然后我把第二个动画改成了旋转动画,发现旋转的中心点依然在执行该动画的View的最原始的位置。恍然大悟?对,视图动画并没有真正改变View的真实位置(牢记)。

因为View真实的位置并没有改变,所以虽然设置了android:pivotY="50%"android:pivotX="50%",但是此时的缩放中心并不是移动之后所看到的View的中心,而是在视图原来位置的中心。也就是说,此时的缩放中心在你所看到的View的外面。

那么对于缩放中心不处于View上面的时候,它是怎么缩放的呢?

经过我的实验发现:假如该View离缩放中心的距离是s,缩放倍数为n,那么它缩放之后,它距离缩放中心的距离将变成s*n。

解决办法:目前我还没有想到直接用视图动画的解决办法,只能用属性动画了。

相关文章

  • 坑人的视图动画

    以下是一个用视图动画实现先平移后缩放的动画的xml代码 期望的执行结果是先平移后缩放。可是发现在缩放的时候还是会发...

  • android基础-视图动画(Animation)

    知识点 视图动画的类型 视图动画的特点 视图动画的实现方式 一、视图动画的类型 视图动画主要分四类:透明度,旋转,...

  • Android视图动画集合AndoridViewAnimatio

    Android视图动画集合AndoridViewAnimations Android视图动画是针对视图对象的动画效...

  • Android 动画 | 艺术探索笔记

    Android 动画分为两大类 视图动画 属性动画 视图动画(View animation) 视图动画分为 补间动...

  • iOS 视图动画

    父视图的动画,保持子视图的frame不变;子视图的动画,保持父视图的frame不变。

  • 属性动画与视图动画

    1.视图动画与属性动画: 视图动画:AlphaAnimation,RotateAnimation,Translat...

  • Android动画之视图动画

    分类 Android动画主要包括视图动画和属性动画。视图动画包括Tween动画和Frame动画。Tween动画又包...

  • iOS 基础动画UIView动画CALayer动画

    一. UIView 动画 动画的属性: frame: 视图框架 center: 视图的位置 alpha: 视图的透...

  • Android 动画

    View Animation(视图动画) 概述: 视图动画,也叫 Tween (补间)动画可以在一个视图容器内执行...

  • Android 动画

    View Animation(视图动画) 概述: 视图动画,也叫 Tween (补间)动画可以在一个视图容器内执行...

网友评论

    本文标题:坑人的视图动画

    本文链接:https://www.haomeiwen.com/subject/yoleuttx.html