• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

App Inventor Android Multitouch screen divided in two parts

vcasado312

Lurker
Oct 4, 2017
1
0
I am developing an Arduino project that needs an android to be controlled, I have the communication and Arduino part done, but I need an app that has the screen divided in two parts, the left part reports the X, Y position of one fingerlike (ID1 X1, Y1) and the right part reports the ID2 X2, Y2.

I need four variables like X1, Y1, X2, Y2.

I actually have this code but I haven't made it work as I want. I've read a lot, I've seen a lot of videos but no resource gives me the information for what I want to do.

Thank you so much for your time.

Best Regards

Code:
public boolean onTouch(View v, MotionEvent event){
  //needs multitouch
  if(checkInGame()){

            if(event.getY() < this.getMeasuredHeight() / 2){ 
                pointerId1 = event.getPointerId(event.getActionIndex());
            }else{
                pointerId2 = event.getPointerId(event.getActionIndex());   
            }

            switch(event.getAction() & MotionEvent.ACTION_MASK){

                case MotionEvent.ACTION_MOVE:{

                    if(event.getPointerId(event.getActionIndex()) == pointerId1){ 
                        Log.d("Touch","Move1");
                          int pointerIndex = event.getActionIndex();
                      int moveX = 0;
                      int moveY = 0;
                      moveX = (int) event.getX(pointerIndex) - sX;
                      moveY = (int) event.getY(pointerIndex) - sY;

                      ship1.setLoc(moveX, moveY);
                      sX = sX + moveX;
                      sY = sY + moveY;
                    }else if(event.getPointerId(event.getActionIndex()) == pointerId2){
                          int pointerIndex = event.getActionIndex();
                        Log.d("Touch","Move2");
                          int moveX = 0;
                          int moveY = 0;
                          moveX = (int) event.getX(pointerIndex) - sX2;
                          moveY = (int) event.getY(pointerIndex) - sY2;

                          ship2.setLoc(moveX, moveY);
                          sX2 = sX2 + moveX;
                          sY2 = sY2 + moveY;
                    }
                      return true;


                }
                  case MotionEvent.ACTION_DOWN: {

                        if(event.getPointerId(event.getActionIndex()) == pointerId1){
                            Log.d("Touch","Top1");
                            int pointerIndex = event.getActionIndex();
                            sX = (int) event.getX(pointerIndex);
                            sY = (int) event.getY(pointerIndex);
                        }else if(event.getPointerId(event.getActionIndex()) == pointerId2){
                            int pointerIndex = event.getActionIndex();
                            Log.d("Touch","Bottom1");
                             sX2 = (int) event.getX(pointerIndex);
                             sY2 = (int) event.getY(pointerIndex);
                        }
                        return true;
                    }

                  case MotionEvent.ACTION_POINTER_DOWN:{
                        if(event.getPointerId(event.getActionIndex()) == pointerId1){
                            Log.d("Touch","Top2");
                            int pointerIndex = event.getActionIndex();
                            sX = (int) event.getX(pointerIndex);
                            sY = (int) event.getY(pointerIndex);
                        }else if(event.getPointerId(event.getActionIndex()) == pointerId2){
                            int pointerIndex = event.getActionIndex();
                            Log.d("Touch","Bottom2");
                             sX2 = (int) event.getX(pointerIndex);
                             sY2 = (int) event.getY(pointerIndex);
                        }
                        return true;
                  }


            }**`strong text`**
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones