首页 > 解决方案 > 动画布局的 setRotation 属性

问题描述

可以使用RotateAnimationandroid中的对象旋转视图,但是使用此类似乎只能在视觉上旋转视图,例如单击旋转视图(使用除中心以外的枢轴旋转)实际上不会单击视图,视图仍处于其原始位置但只是视觉上的其他地方。

因此,为了将视图连同它的子视图一起旋转到一个新位置,我找到了使用的解决方案layout.setRotation(angle),在我的情况下layoutconstraintLayout我将不得不旋转它180

但是,问题是,我无法对此进行动画处理,我想从0180度进行平滑过渡,但它只是捕捉到 180 度。我怎样才能动画这个属性或可能的旋转?

标签: androidandroid-constraintlayout

解决方案


在约束布局内的 .xml 文件中添加以下代码。

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"/>

MainActivity.java :

 ConstraintLayout constraintLayout = findViewById(R.id.layout);
 constraintLayout.animate().rotation(100).setDuration(2000);

唯一的问题是您忘记在 .rotation() 之前添加 .animate() ,这就是它不起作用的原因。


推荐阅读