Blog purpose for android basic example for android app developer. any query please my contact

Saturday, 22 June 2024

Motion Event in Android with Code Example

 Motion Event in Android with Code Example


In this Tutorial Today Learn Motion Event in Android with Code Example Follow This Motion Event in Android with Code Example


1.Main Activity.java:


import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.view.Menu;

import android.view.MotionEvent;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnTouchListener;

 

public class MainActivity extends Activity implements OnTouchListener {

    Ourview v;

    Bitmap bm;

    float x, y;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        v = new Ourview(this);

        v.setOnTouchListener(this);

        bm = BitmapFactory.decodeResource(getResources(), R.drawable.image4);

        x = 0;

        y = 0;

        setContentView(v);

    }

 

    @Override

    protected void onPause() {

        // TODO Auto-generated method stub

        super.onPause();

        v.pause();

    }

 

    @Override

    protected void onResume() {

        // TODO Auto-generated method stub

        super.onResume();

        v.resume();

    }

 

    // surface view is going to be a thread now

    class Ourview extends SurfaceView implements Runnable {

 

        Thread th = null;

        SurfaceHolder holder;

        boolean var = false;

 

        public Ourview(Context context) {

            super(context);

            // TODO Auto-generated constructor stub

            holder = getHolder();

        }

 

        @Override

        public void run() {

            // TODO Auto-generated method stub

            while (var = true) {

                // do stuff

                if (!holder.getSurface().isValid()) {

                    continue;

                }

                Canvas c = holder.lockCanvas();

                /*

                 * while drawing on a canvas we lock it and after drawing on it

                 * we unlock it

                 */

 

                c.drawARGB(255, 250, 150, 20);// rgb values

                c.drawBitmap(bm, x - (bm.getWidth() / 2), y

                        - (bm.getHeight() / 2), null);

                holder.unlockCanvasAndPost(c);

            }

        }

 

        public void pause() {

 

            var = false;

            while (true) {

                try {

                    th.join();

                    /*

                     * would pause the currently executing thread till the user

                     * finishes its job

                     */

                } catch (InterruptedException e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

                break;

            }

            th = null;

        }

 

        public void resume() {

            var = true;

            th = new Thread(this);

            th.start();

        }

    }

 

    @Override

    public boolean onTouch(View v, MotionEvent me) {

        // TODO Auto-generated method stub

 

        try {

            Thread.sleep(80);

        } catch (InterruptedException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        switch (me.getAction()) {

        case MotionEvent.ACTION_DOWN:

            x = me.getX();

            y = me.getY();

            break;

 

        case MotionEvent.ACTION_UP:

            x = me.getX();

            y = me.getY();

            break;

 

        case MotionEvent.ACTION_MOVE:

            x = me.getX();

            y = me.getY();

            break;

 

        default:

            break;

        }

 

        return true;

    }

 

}


No comments:

Post a Comment