Hi Group,

I am getting used to android animations, and have come across an
issue. To keep it easy to explain, I have simplified my code. here I
am creating two circles, a red one and a green one. I now want to use
a translation animation on just the green circle circle when I click
the screen. I have all this working except when i click the screen
both circles move. How can I apply a translation animation to just one
circle (e.g. in my code mDrawable[0])?

Thanks

Graham

----------------------------------------------------------------------------------------------------------------------------------------------------

package com.image;

import android.app.Activity;
import android.os.Bundle;

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

        private MoveCircleByTouch mMoveCircleByTouch;

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            //last argument 1 = green, all others = red
            mMoveCircleByTouch = new MoveCircleByTouch(this);

            setContentView(mMoveCircleByTouch);

        }
}



package com.image;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.TranslateAnimation;


public class MoveCircleByTouch extends View{

        private ShapeDrawable[] mDrawable;
        private Animation anim;
        private Animation translate;

        public MoveCircleByTouch(Context context) {
                super(context);

                int x = 20;
                int y = 20;
                int width = 50;
                int height = 50;

                mDrawable = new ShapeDrawable[2];

        //green circle
        mDrawable[0] = new ShapeDrawable(new OvalShape());
        mDrawable[0].getPaint().setColor(0xff74AC23);
        mDrawable[0].setBounds(x, y, x + width, y + height);

        /red circle
        mDrawable[1] = new ShapeDrawable(new OvalShape());
        mDrawable[1].getPaint().setColor(0xffff0000);
        mDrawable[1].setBounds(x+50, y+50, x + width+50, y + height
+50);

        }

        public void onDraw(Canvas canvas){
                super.onDraw(canvas);

                if (translate == null) {
                        createTranslate(mDrawable[0]);
                        }


                for (Drawable dr : mDrawable) {

                   dr.draw(canvas);

                }
        }



        @Override
    public boolean onTouchEvent(MotionEvent event) {

        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            ScreenTouched();
            invalidate();
            break;
        }

        return true;

        }


        public void ScreenTouched(){
                startAnimation(translate);
        }



         private void createTranslate(ShapeDrawable mDrawable){
                 translate = new TranslateAnimation(1, 100, 1, 100);
                 translate.setRepeatCount(1);
                 translate.setDuration(2000);

         }
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
To unsubscribe from this group, send email to
android-beginners-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to