【发布时间】:2022-10-14 10:07:44
【问题描述】:
当我使用
binding.testImage.rotation = 45f
图像会旋转,但会略微缩小。我猜这是因为它试图保持视图的宽度和高度,并且当视图位于对角线时,宽度和高度会增加(因为对角线比宽度和高度长)。但是,我不确定。
当我像这样为视图设置动画时,这一点非常明显:
TransitionManager.beginDelayedTransition(rootView, transition)
binding.testImage.rotation = 90f
这是过渡文件:
<?xml version="1.0" encoding="UTF-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeTransform
android:duration="1000"
android:startDelay="1000"/>
</transitionSet>
这是布局:
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
app:layout_constraintBottom_toTopOf="@id/closeit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center"
android:background="@color/blue">
<ImageView
android:id="@+id/testImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/test"
android:scaleType="centerCrop"
android:visibility="visible"/>
</LinearLayout>
这里发生的情况是,当 testImage 旋转时,它会在接近对角线(45 度)时收缩,然后在达到 90 度时增长。
【问题讨论】: