2010-08-22 6 views
3

J'ai un LinearLayout avec une orientation verticale, dans cette disposition j'ai trois boutons (ImageButtons pour être exact) et quand l'orientation change (via un OrientationEventListener) je les ai mis pour effectuer une animation de rotation . Les boutons du haut et du bas pivotent parfaitement, mais pas celui du milieu. Son point de pivot semble être éteint.Rotation des vues dans un problème LinearLayout

Voici la mise en page de l'animation:

<?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"/> 

... et voici comment je lance l'animation:

Animation rotate = AnimationUtils.loadAnimation(this.mContext, animResId); 
rotate.setFillEnabled(true); 
rotate.setFillAfter(true); 
{...retrieve the each ImageButton then call startAnimation(rotate) on them...} 

... et la mise en page est ici pour le composant mon activité qui est le LinearLayout pour mon menu:

<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> 

est-ce que quelqu'un a une idée pourquoi le milieu (action) le bouton ne tourne pas autour du point de pivotement correct? Une chose que j'ai remarquée est qu'après la rotation, le bouton du milieu est aligné avec les sommets des deux autres boutons plus petits (les boutons du haut et du bas).

Merci d'avance pour toute aide!

Cordialement, célestialorb.

+0

J'ai aussi des problèmes avec les pivots. Je commence à penser que c'est un bug. Avez-vous déjà résolu ce problème? – Thomas

Répondre

1

Ceci est juste une observation simple, mais avez-vous considéré l'attribut layout_weight comme étant le coupable? Comme il a un poids différent, il pourrait être redimensionné sur la rotation et faire des choses étranges.

Questions connexes