在LinearLayout问题中旋转视图

时间:2010-08-22 03:27:39

标签: java android animation rotation

我有一个垂直方向的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。

1 个答案:

答案 0 :(得分:1)

这只是一个简单的观察,但您是否认为layout_weight属性是罪魁祸首?由于它具有不同的重量,因此可以调整旋转并做一些奇怪的事情。