我有一个垂直方向的LinearLayout,在该布局中我有三个按钮(确切地说是ImageButtons),当方向改变时(通过OrientationEventListener),我将它们设置为执行旋转动画。顶部和底部按钮完美旋转,但中间按钮没有旋转。它的支点似乎已经关闭。
这是动画的布局:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="-90"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"/>
...以下是我启动动画的方式:
Animation rotate = AnimationUtils.loadAnimation(this.mContext, animResId);
rotate.setFillEnabled(true);
rotate.setFillAfter(true);
{...retrieve the each ImageButton then call startAnimation(rotate) on them...}
...以下是我的活动中组件的布局,即我菜单的LinearLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/camera_menu"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/camera_preview"
android:layout_alignParentRight="true"
>
<ImageButton
android:id="@+id/camera_top_button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:src="@drawable/placeholder"
android:scaleType="centerInside"
android:onClick="onTopButtonClick"
/>
<ImageButton
android:id="@+id/camera_action_button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:src="@drawable/placeholder"
android:scaleType="centerInside"
android:onClick="onActionButtonClick"
/>
<ImageButton
android:id="@+id/camera_bottom_button"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:src="@drawable/placeholder"
android:scaleType="centerInside"
android:onClick="onBottomButtonClick"
/>
</LinearLayout>
有没有人知道为什么中间(动作)按钮没有围绕正确的枢轴点旋转?
我注意到的一件事是旋转后,中间的按钮与另外两个较小的按钮(顶部和底部按钮)的顶部对齐。
提前感谢您的帮助!
此致,celestialorb。
答案 0 :(得分:1)
这只是一个简单的观察,但您是否认为layout_weight
属性是罪魁祸首?由于它具有不同的重量,因此可以调整旋转并做一些奇怪的事情。