Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 缩放动画,其行为类似于平移动画_Android_Animation - Fatal编程技术网

Android 缩放动画,其行为类似于平移动画

Android 缩放动画,其行为类似于平移动画,android,animation,Android,Animation,我正在实施缩放动画,以便在游戏中进行练习。。我遵循所有的指南,但奇怪的事情总是发生,而不是使物体变大。动画不仅使图像变大,而且移动它,即使我没有使用平移动画 这里是xml文件 <?xml version="1.0" encoding="utf-8"?> <set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android"> <sca

我正在实施缩放动画,以便在游戏中进行练习。。我遵循所有的指南,但奇怪的事情总是发生,而不是使物体变大。动画不仅使图像变大,而且移动它,即使我没有使用平移动画

这里是xml文件

<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false"    
 xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromXScale="1.0"
    android:toXScale="1.4"
    android:fromYScale="1.0"
    android:toYScale="1.4"
    android:pivotX="50%"
    android:pivotY="50%"
    android:fillAfter="false"
    android:duration="1000" />
 </set>
这真的很奇怪,我已经尝试了我在网上找到的所有解决方案,但运气不好,它仍然可以转换行为,即使它只是规模。。。我从小点开始制作图像,然后图像变大(正常大小)。但我不想让它移动,只是想在它的位置上。谢谢:)


p.S我一直在观察动画,它似乎占用了更大的空间,这就是为什么它看起来像是在移动。为什么它占用了更大的空间?不是实际图像大小?

pivotX和pivotY需要与视图应缩放的位置相等

为了演示,这里有一个图表来说明:

您的轴心点当前位于视图之外,使视图看起来像是在移动和缩放

如果希望轴点位于视图的左上角,请将pivotX/pivotY设置为0

如果希望比例从中心开始(如第一幅图所示),请设置
pivotX=view.getWidth()/2f
&
pivotY=view.getHeight()/2f


希望这有帮助:)

我也有同样的问题。我不知道它是否和我的差不多,但也许它能帮上忙。 我在scrollview中添加了按钮,而在relativelayout中添加了relativelayout。当我想设置按钮比例的动画时,也遇到了与您相同的问题,所以我使用java代码而不是xml编写,但RELATIVE_to_PARENT和RELATIVE_to_SELF之间没有区别。我发现轴每次都是从按钮的父级(滚动视图)获取的。不知道为什么。 因此,我决定计算scrollview的轴,它位于按钮所在的位置:

ScaleAnimation animation = new ScaleAnimation(1.0f, 1.1f, 1.1f, 1.0f, Animation.RELATIVE_TO_PARENT, (float) (button1.getX()+ 45*ssu) / width, Animation.RELATIVE_TO_PARENT, (float) (button1.getY()+ 45*ssu) / (4 * height) );
                animation.setDuration(1000);
                animation.setRepeatMode(ValueAnimator.REVERSE);
                animation.setRepeatCount(animation.INFINITE);
                button1.startAnimation(animation);
你可以看到,我为pivotX部分(我的按钮的x位置)划分了孔宽,为pivotY部分(我的按钮的y位置)划分了scrollview的孔高(4*height),并为按钮位置添加了45*ssu,因为这是它的一半,如果不这样做,则枢轴位于左上角。 PS:ssu是一个自制的定标器,因为我用java代码90*ssu设置了按钮的宽度和高度


希望我能帮助你:)

你好,谢谢。。我有个问题。。50%的数据透视X和Y是否不居中?我不确定在运行时如何解释50%的数据透视X和Y。仍然相同。:)当我从x变为y时,它仍在移动=_=尝试设置pivotX,pivotY为0?我很高兴看到这个答案,但当我尝试时,它仍然保持移动而不是缩放
ScaleAnimation animation = new ScaleAnimation(1.0f, 1.1f, 1.1f, 1.0f, Animation.RELATIVE_TO_PARENT, (float) (button1.getX()+ 45*ssu) / width, Animation.RELATIVE_TO_PARENT, (float) (button1.getY()+ 45*ssu) / (4 * height) );
                animation.setDuration(1000);
                animation.setRepeatMode(ValueAnimator.REVERSE);
                animation.setRepeatCount(animation.INFINITE);
                button1.startAnimation(animation);