2010-07-06 5 views
1

Je dois avoir 2 images différentes dans une vue. Le GraphicsView (ce) est censé être une animation (en fait une image qui tourne elle-même au centre de la vue) et R.layout.main est censé être l'arrière-plan de la vue (une image statique à nouveau sur le haut de la vue)2 vues différentes dans le set androidContentView

Ce que je besoin est un imageview sur le dessus de la vue et beugler la vue d'animation je

public class spinball extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 

     setContentView(new GraphicsView(this)); 
     setContentView(R.layout.main); 
} 
    private static class GraphicsView extends View { 
     private Bitmap ball; 
      private int XOffset; 
      private int YOffset; 

     private Animation anim; 

     public GraphicsView(Context context) { 
      super(context); 
      ball = BitmapFactory 
        .decodeResource(getResources(), R.drawable.ball); 
      XOffset = ball.getWidth()/2; 
      YOffset = ball.getHeight()/2; 
     } 
     private void createAnim(Canvas canvas) { 
      anim = new RotateAnimation(0, 360, canvas.getWidth()/2, canvas 
        .getHeight()/2); 
      anim.setRepeatMode(Animation.RESTART); 
      anim.setRepeatCount(Animation.INFINITE); 
      anim.setDuration(10000L); 
      anim.setInterpolator(new AccelerateDecelerateInterpolator()); 

      startAnimation(anim); 
     } 
     @Override 
     protected void onDraw(Canvas canvas) { 
      super.onDraw(canvas); 

      // creates the animation the first time 
      if (anim == null) { 
       createAnim(canvas); 
      } 

      Path circle = new Path(); 

      int centerX = canvas.getWidth()/2; 
      int centerY = canvas.getHeight()/2; 
      int r = Math.min(centerX, centerY); 

      circle.addCircle(centerX, centerY, r, Direction.CW); 
      Paint paint = new Paint(); 
      canvas.drawBitmap(ball, centerX - jobsXOffset, 
        centerY - jobsYOffset, null); 
     } 
    } 
} 

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <ImageView android:src="@drawable/static_image" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFFFFF" 
     /> 
</LinearLayout> 
+0

clarifiez votre question. Je ne peux pas vous avoir correctement. – Praveen

+0

J'ai inclus l'ensemble du code, espérons que cela explique plus. – thpoul

Répondre

0

Une activité ne peut avoir qu'une seule vue de contenu. Si vous voulez juste avoir une image d'arrière-plan, vous pouvez définir l'arrière-plan drawable de votre mise en page de premier niveau, et avoir cette disposition contient le ImageView. Est-ce que c'est ce que vous allez faire?

4

Utilisez RelativeLayout. Plus tard, les enfants du RelativeLayout empilent "au-dessus de" (axe Z) les enfants plus tôt.

Questions connexes