Android:应用旋转动画时的失真

时间:2017-09-16 07:03:36

标签: java android android-layout android-animation

我最近在Android中构建工具栏时遇到了问题。工具栏可根据用户首选项动态调整大小,并包含多个ImageButtons,这些ImageButtons也必须使用工具栏调整大小。当然,这些按钮是工具栏本身的子代。这些按钮中的一些具有在与它们交互时播放的动画,这些动画在实现调整大小系统之前正常工作。完成调整大小计算例程后,我注意到一个图标,特别是标准的“齿轮”样式设置图标,在工具栏按比例缩小或向上时旋转时扭曲。这是正常状态下的图标:

The image at rest

这是在动画中途:

The image during its animation

正如您在此处所见,正常圆形图标在其动画循环期间变为椭圆形。我将问题跟踪到我缩放工具栏的方式,如下:

sidebar.setScaleX(multiplier);

我只能假设这是因为动画会像这样被触发:

findViewById(R.id.main_sidebar_settings_button).animate().rotation(359.0f).setDuration(500).setInterpolator(new LinearInterpolator());

正在计算其未缩放版本的齿轮的旋转。但是,动画只是在一个轴上扭曲,所以我的问题是这样的:由于齿轮图标是工具栏的子项,其比例已更改,因此图标必须从工具栏本身继承其水平比例。我正在改变其垂直比例以匹配。因此,如果没有将图标从其父布局(RelativeLayout)中取出,并且独立于工具栏进行缩放,我是否有任何方法可以强制它使用从其父级继承的比例进行动画处理,而不是以这种方式扭曲?提前谢谢!

0 个答案:

没有答案