Вращающиеся представления в задаче LinearLayout - PullRequest
3 голосов
/ 22 августа 2010

У меня есть 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>

Кто-нибудь имеет представление о том, почему средняя кнопка (действия) не вращается вокруг правильной точки вращения?

Одна вещь, которую я заметил, заключается в том, что после поворота средняя кнопка выравнивается по вершинам двух других, меньших кнопок (верхняя и нижняя кнопки).

Заранее спасибо за любую помощь!

С уважением, Небесная Торб.

1 Ответ

1 голос
/ 22 августа 2010

Это просто простое наблюдение, но считаете ли вы виновным атрибут layout_weight? Поскольку он имеет другой вес, он может изменять размеры вращения и делать странные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...