2010-08-02 8 views
0

Je veux que mes flèches se déplacent continuellement à gauche et à droite avec un retard de certaines millisecondes de manière dynamique. Une idée?Android: Comment modifier dynamiquement la position d'ImageView?

Voici mon code:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Handler; 
import android.widget.ImageView; 

public class PlayWithGraphics extends Activity { 
    /** Called when the activity is first created. */ 

public final int delay = 2500; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final ImageView iv = (ImageView)findViewById(R.id.iv); 
     iv.setBackgroundResource(R.drawable.back_two); 

     new Handler().postDelayed(new Runnable(){ 
      public void run(){ 


      //iv.setPadding(30, 0, 10, 0); 
      } 
     }, delay); 




    } 
    } 

Répondre

2

Vous pouvez soit utiliser une animation traduire et mettre à jour le mouvement dans le onRepeatListener ou mettre votre image dans un RelativeLayout et changer sa marge à intervalles réguliers.

+0

Maintenant vous a donné 2 suggestions: 1. utiliser une animation et mettre à jour traduire le mouvement dans le onRepeatListener OU 2. Mettez votre image dans un RelativeLayout et changer sa marge à intervalles réguliers Pour le numéro 1: ont un code exemple que vous pouvez poster ici ou renvoyer un tutoriel sur le web? Pour le numéro 2: id, la méthode requise n'est pas disponible lors de l'exécution. J'ai utilisé setPadding mais cela n'a pas fonctionné. setMarginLeft et setMarginRight ne sont disponibles qu'au moment de la conception dans la présentation XML. –

+1

Eh bien, à propos de la méthode 2, en fait non, ces méthodes sont regroupées en une que vous trouverez dans 'LayoutParams' de' RelativeLayout'. Vous devez juste utiliser un thread d'arrière-plan qui fait le compte et de temps en temps, vous changez les marges. Je vais essayer cet après-midi et essayer de revenir avec du code/capture d'écran. Bien que je pense que l'animation de traduction est le moyen le plus facile de le faire ... Vous faites référence à l'animation de traduction dans ApiDemo. ou créez simplement votre propre instance. Encore une fois, je vais jeter un coup d'oeil et vous donner plus de détails plus tard. – Sephy

Questions connexes