问题如下:
我有一个视图组相对布局,我正在触摸它。
旋转后,我需要确定viewGroup
的顶部和左侧位置。
轮换之前
问题是即使旋转视图,其宽度,高度,顶部和左侧与旋转之前一样。
旋转后
BEFORE ROTATION: width 826 height 283
BEFORE ROTATION: left 138 top 344
AFTER ROTATION: width 826 height 283
AFTER ROTATION: left 138 top 344
我可以计算旋转后的宽度,高度,顶部,左侧,左侧,但是有更好的解决方案吗?
这里是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:animateLayoutChanges="true"
android:id="@+id/relativeLayout">
<RelativeLayout
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="50dp"
android:layout_marginTop="125dp"
android:animateLayoutChanges="true"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/imgGroup"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="0dp"
android:adjustViewBounds="true"
android:clickable="false"
android:scaleType="fitXY"
android:src="@drawable/star_image" />
<ImageView
android:id="@+id/imgGroup2"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="0dp"
android:layout_marginTop="0dp"
android:layout_toRightOf="@+id/imgGroup"
android:adjustViewBounds="true"
android:clickable="false"
android:scaleType="fitXY"
android:src="@drawable/star_image" />
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="143dp"
android:layout_marginLeft="143dp"
android:layout_marginEnd="403dp"
android:layout_marginRight="403dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
</RelativeLayout>
这是代码:
group = findViewById(R.id.group);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ObjectAnimator rotation = ObjectAnimator.ofFloat(group, "rotation", 90f);
rotation.setDuration(400);
Log.d("BEFORE ROTATION", "width " + group.getWidth()+" height " + group.getHeight());
Log.d("BEFORE ROTATION", "left " + group.getLeft() +" top " + group.getTop());
rotation.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
Log.d("AFTER ROTATION", "width " + group.getWidth()+" height " + group.getHeight());
Log.d("AFTER ROTATION", "left " + group.getLeft() +" top " + group.getTop()); }
});
rotation.start();
}
});
谢谢!