2010-08-24 7 views
0

J'ai un ImageView étendu que je réutilise 7 fois horizontalement (dans un LinearLayout) à travers mon écran. Directement au-dessus et au-dessous de cette ImageView sont d'autres ImageViews étendus qui sont dans leur propre LinearLayouts. J'espacer ces tous uniformément en utilisant la propriété de poids dans le LinearLayout afin qu'ils espacent uniformément à travers l'écran. Ce que je dois faire, c'est que ImageView moyen soit capable de flotter au-dessus des ImageViews du haut ou du bas auxquels il s'aligne avec une animation. Y a-t-il une sorte d'index z que je peux mettre sur des éléments pour que je puisse faire flotter cette IV moyenne au-dessus des autres?float animé ImageView au-dessus d'autres éléments dans LinearLayout - android

Snippet de mon xml:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/opponentrow"> 
    <ImageView 
     android:id="@+id/your1" 
     android:layout_width="45px" 
     android:layout_height="60px" 
     android:src="@drawable/topimage" 
     android:layout_weight="1" /> 
     ... 
</LinearLayout> 
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/tokenrow"> 
    <ImageView 
     android:id="@+id/your1" 
     android:layout_width="20px" 
     android:layout_height="20px" 
     android:src="@drawable/centerimage" 
     android:layout_weight="1" /> 
     ...    
</LinearLayout> 
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ImageView 
     android:id="@+id/your1" 
     android:layout_width="45px" 
     android:layout_height="60px" 
     android:src="@drawable/bottomimage" 
     android:layout_weight="1" /> 
     ... 
</LinearLayout> 

les ellipses indiquent simplement que ces imageviews sont répétées 7 fois chacun. En outre, ils ne sont pas TRUE ImageViews comme je l'ai dit, ils sont étendus.

Voici un extrait de la imageview qui est au milieu (une avec centerimage comme source) qui fait l'animation (ce qui est dans le fichier .java)

public Tokens(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
     setOnClickListener(myListener); 
    } 

    private OnClickListener myListener = new OnClickListener(){ 
    public void onClick(View v) { 
     doAnimate(); 
    } 
}; 

private void doAnimate(){ 
    final Animation animUp = new TranslateAnimation(0,0,0,-22); 
    animUp.setDuration(200); 
    animUp.setFillAfter(true); 

    final Animation animDown = new TranslateAnimation(0,0,0,22); 
    animDown.setDuration(200); 
    animDown.setFillAfter(true); 
    if(avail) 
     startAnimation(animDown); 

} 

quelques considérations importantes: je dois conserver l'espacement horizontal uniforme pour les 7 éléments (toutes les 3 rangées). Je suis ouvert à l'utilisation d'un autre type de mise en page si mes objectifs ne peuvent pas être atteints avec LinearLayout.

merci pour votre temps

Répondre

0

Je fini par écrire une vue personnalisée et d'appeler un fichier xml empilée avec:

View view=layoutInflater.inflate(R.layout.handlayout, this); 

il semble fonctionner et en fait j'aime cette solution mieux de toute façon parce que je suis y compris les trois éléments (dans la «colonne») en une vue.