Trying to add a touch event on my bitmap, but i got wrong values? Android Studio

Im new on Stack Overflow!, I joined here for some problem that I got right now.

Im working with Android Studio where im trying to make a type of game that it requires a grid usage to start it. At this point im trying to implement the touch event on some bitmaps, those bitmaps are the tiles of my game but im kinda of confused, in My view, where I place all of the tiles i can get all of the coordinates (including height and width) of each tile, I check those values but when I apply the touch event (On Action Down) im getting the coords of my last tile of my grid. Thats strange, because when im drawing it in my canvas Im still got the actual values (the real coords) but in touch are different, im trying to figure this but no result at all.

Can someone here tell me where i go wrong?

Sorry for my english.

PS: The grid can be dragged.

MyView.java

package com.example.sammuzero.aplicamesta;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Map;

/**
 * Created by lezama on 24-07-2017.
 */

public class MyView extends SurfaceView {

Bitmap piso1;
Bitmap muro;
Bitmap queso;

SurfaceHolder aguanta;
GameLoopThread loopGame;
Terreno pintaTerreno;
Sprite mouse;
boolean scroll;
float destinyX = 0;
float destinyY = 0;
float originX = 0;
float originY = 0;
float transX = 0;
float transY = 0;
float escala = 1;

public MyView(Context context, AttributeSet attrs) {
    super(context, attrs);
    aguanta = getHolder();
    loopGame = new GameLoopThread(this);
    aguanta.addCallback(new SurfaceHolder.Callback(){
        @Override
        public void surfaceCreated(SurfaceHolder surfaceHolder) {
            loopGame.setRunning(true);
            loopGame.start();
        }
        @Override
        public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

        }
        @Override
        public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
            boolean retry = true;
            loopGame.setRunning(false);
            while (retry) {
                try {
                    loopGame.join();
                    retry = false;
                } catch (InterruptedException e) {}
            }
        }
    });


    piso1 = BitmapFactory.decodeResource(getResources(), R.drawable.floor1);
    muro = BitmapFactory.decodeResource(getResources(), R.drawable.pared);
    queso = BitmapFactory.decodeResource(getResources(), R.drawable.kso);
    pintaTerreno = new Terreno(0,0,new MapBit(piso1), new MapBit(muro));
}
public void onDraw(Canvas canvas) {
    canvas.drawColor(Color.WHITE);

    canvas.scale(escala,escala);
    canvas.translate((destinyX - originX), (destinyY - originY));
    transX = (destinyX - originX);
    transY = (destinyY - originY);
    for(int i = 0; i < pintaTerreno.getAncho(); i++) {
        for (int j = 0; j < pintaTerreno.getAlto(); j ++){
            dibujaCasilla(i,j, canvas);
            Log.i("Probando X,Y", "X: " + pintaTerreno.getCasilla(i, j).getGrafico().getX()
                    + " Y: " + pintaTerreno.getCasilla(i, j).getGrafico().getY());
        }
    }
    canvas.scale(1.0f,1.0f);
    //mouse.onDraw(canvas);
}

public void queTerrenoDibujo(Terreno e)
{
    pintaTerreno = e;
}
public void setEscala(int escalaATransformar) {
    float nuevaEscala;
    nuevaEscala = (float) escalaATransformar / 100;
    escala = nuevaEscala;
}

private void dibujaCasilla(int i, int j,Canvas canvas) {
    // Primero revisa si hay una pared o no alli.

    if (pintaTerreno.getCasilla(i,j).getRepresenta() == 'P') {
        pintaTerreno.getCasilla(i,j).getGrafico().setX(64 * i);
        pintaTerreno.getCasilla(i,j).getGrafico().setY(64 * j);
        pintaTerreno.getCasilla(i,j).getGrafico().onDraw(canvas);
    }
    else {
        pintaTerreno.getCasilla(i,j).getGrafico().setX(64 * i);
        pintaTerreno.getCasilla(i,j).getGrafico().setY(64 * j);
        pintaTerreno.getCasilla(i,j).getGrafico().onDraw(canvas);
        if(pintaTerreno.getCasilla(i,j).getRepresenta() == 'Q')
            canvas.drawBitmap(queso,(64 * i) + 16, (64 * j) + 16, null);
    }
    /*
    MapBit nuevoBloque = null;
        if (pintaTerreno.getCasilla(i,j).getRepresenta() == 'P') {
            nuevoBloque = new MapBit((64 * i),(64 * j),muro);

            nuevoBloque.onDraw(canvas);
        }
        else {
            nuevoBloque = new MapBit((64 * i),(64 * j),piso1);

            nuevoBloque.onDraw(canvas);
            if(pintaTerreno.getCasilla(i,j).getRepresenta() == 'Q')
                canvas.drawBitmap(queso,(64 * i) + 16, (64 * j) + 16, null);
        }
        */

    // Luego, asegurate de los elementos que estan en esa casilla.
}

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
//return super.onTouchEvent(event);
    int action = event.getAction();
    if (action==MotionEvent.ACTION_MOVE){
        destinyX = event.getX();
        destinyY = event.getY();
    }
    else if (action==MotionEvent.ACTION_DOWN) {
        Log.i("Probando X,Y en 0,0", "X: " + pintaTerreno.getCasilla(0, 0).getGrafico().getX()
                + " Y: " + pintaTerreno.getCasilla(0, 0).getGrafico().getY());
        for (int i = 0; i < pintaTerreno.getAncho(); i++) {
            for (int j = 0; j < pintaTerreno.getAlto(); j++) {
                Log.i("Probando X,Y", "X: " + pintaTerreno.getCasilla(i, j).getGrafico().getX()
                        + " Y: " + pintaTerreno.getCasilla(i, j).getGrafico().getY());
                String msg = "X: " + pintaTerreno.getCasilla(i, j).getGrafico().getX() + " Y: " + pintaTerreno.getCasilla(i, j).getGrafico().getY();
                if (pintaTerreno.getCasilla(i, j).getGrafico().isCollition(event.getX(), event.getY())) {
                    Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show();



                }

            }
        }
        originX = event.getX() - transX;
        originY = event.getY() - transY;
        scroll = true;
    }
    else if (action==MotionEvent.ACTION_UP){
        transX = (destinyX - originX);
        transY = (destinyY - originY);
        scroll = false;
    }

    return true;
}
}

Terreno.java (The grid)

package com.example.sammuzero.aplicamesta;

import java.util.ArrayList;
import java.util.Random;

/**
 *
 * @author estudiante
 */
public class Terreno {
private ArrayList<Object> todo = new ArrayList<>();
private Casilla[][] plataforma;
private int alto;
private int ancho;

public Terreno (int alt, int anch, MapBit nada, MapBit pared)
{
    int i;
    int j;
    this.plataforma = new Casilla[alt][anch];
    this.alto = alt;
    this.ancho = anch;
    for(i = 0; i < this.alto; i++)
     for(j = 0; j < this.ancho; j++)
         this.plataforma[i][j] = new Casilla(i,j, nada);
    this.inicializa(pared);
}

// Getters //

public int getAlto(){return this.alto;}
public int getAncho(){return this.ancho;}
public Casilla getCasilla(int i, int j){return this.plataforma[i][j];}
public ArrayList<Object> getTodo(){return this.todo;}

// Setters //
public void setEnCasilla(int x, int y, Object o, char r){this.plataforma[x][y].setObjeto(o,r);}

// Metodos //

public void inicializa(MapBit pared)
{
    int cuantos = ((this.alto*this.ancho) * 10) / 100;
    Random rand = new Random();
    int llevo = 0;
    int sel = 0;

    for(int i = 0; i < this.alto ; i++)
     for(int j = 0 ; j < this.ancho; j++)
     {
       sel = 1+rand.nextInt(10);
        if(sel == 1 && llevo < cuantos) 
         {
             Pared nueva = new Pared(this.plataforma[i][j]);
             this.plataforma[i][j].setGrafico(pared);
             todo.add(nueva);
             llevo ++;
         }
       else  if (sel == 10) {
            Queso nuevo = new Queso(this.plataforma[i][j]);
            todo.add(nuevo);
        }


     }
}

}

Casilla.java (the tile)

package com.example.sammuzero.aplicamesta;

import android.support.design.widget.Snackbar;

/**
 * Created by lezama on 28-07-2017.
 */

public class Casilla {
private int posX;
private int posY;
private Object contenido;
private char representa;
private MapBit grafico;
public Casilla(int i, int j, MapBit graf)
{
    this.posX = i;
    this.posY = j;
    this.representa = '0';
    contenido = null;
    this.grafico = graf;
}

public int getPosX() {return this.posX;}
public int getPosY() {return this.posY;}
public char getRepresenta() {return this.representa;}
public MapBit getGrafico() {return this.grafico;}

public void setObjeto(Object item , char rep)
{
    this.contenido = item;
    this.representa = rep;
}
public void setGrafico (MapBit grafico1) {this.grafico = grafico1;}
/*
public void onTouch()
{
    Toast.makeText(this.getContext(), "X:"+this.posX+" Y:"+this.posY, Toast.LENGTH_SHORT).show();
} */
}

MapBit.java (where it resides my Bitmap)

package com.example.sammuzero.aplicamesta;

import android.graphics.Bitmap;
import android.graphics.Canvas;

/**
 * TI, MapBit!
 * Created by Samuzero15 on 28-07-2017.
 */

public class MapBit {
private float x;
private float y;
private int height;
private int width;
private Bitmap bmp;

public MapBit(Bitmap pmb)
{
    this.bmp = pmb;
    this.height = this.bmp.getHeight();
    this.width = this.bmp.getWidth();
}


// Getmethis
public float getX(){return this.x;}
public float getY(){return this.y;}
public int getHeight(){return this.height;}
public int getWidth(){return this.width;}
public Bitmap getBitmap(){return this.bmp;}

public void setX(float newX){this.x = newX;}
public void setY(float newY){this.y = newY;}

public void onDraw(Canvas canvas)
{
    canvas.drawBitmap(this.bmp,x,y,null);
}

public boolean isCollition(float x2, float y2) {
    return x2 > this.x && x2 < this.x + this.width && y2 > this.y && y2 < this.y + this.height;
}
}

activity_main.xml (The main view for landscape)

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
tools:context="com.example.sammuzero.aplicamesta.MainActivity">

<RelativeLayout
    android:layout_width="304dp"
    android:layout_height="439dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:weightSum="1"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp">

        <view
            android:id="@+id/game"
            class="com.example.sammuzero.aplicamesta.MyView"
            id="@+id/view4"
            layout_width="match_parent"
            android:layout_width="match_parent"
            android:layout_height="356dp"
            android:gravity="center" />

        <SeekBar
            android:id="@+id/zoom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center"
            android:max="150"
            android:min="25"
            android:progress="100" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="8dp">

            <Button
                android:id="@+id/exit"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="Salir" />

            <Button
                android:id="@+id/gatos"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="Gatos" />

            <Button
                android:id="@+id/reinicio"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:text="Repetir" />

            <ImageButton
                android:id="@+id/nextTurn"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                app:srcCompat="@android:drawable/ic_media_play" />
        </LinearLayout>

    </LinearLayout>
</RelativeLayout>

The main activity in java:

public class MainActivity extends AppCompatActivity implements    View.OnClickListener {
MyView elJuego;
Button salida;
Button reset;
Button nextTurn;
SeekBar escal;
Bitmap piso1;
Bitmap muro;

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

    setContentView(R.layout.activity_main);

    salida = (Button) findViewById(R.id.exit);
    reset = (Button) findViewById(R.id.reinicio);
    elJuego = (MyView) findViewById(R.id.game);
    escal = (SeekBar) findViewById(R.id.zoom);
    salida.setOnClickListener(this);
    reset.setOnClickListener(this);
    escal.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        int progressChanged = 0;
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
            progressChanged = progress;
            elJuego.setEscala(progressChanged);
        }
        public void onStartTrackingTouch(SeekBar seekBar) {}
        public void onStopTrackingTouch(SeekBar seekBar) {}
    });

    piso1 = BitmapFactory.decodeResource(getResources(), R.drawable.floor1);
    muro = BitmapFactory.decodeResource(getResources(), R.drawable.pared);
}

@Override
public void onClick(View v)
{
  switch(v.getId())
  {
      case R.id.exit:
          finish();
          System.exit(0);
          break;
      case R.id.reinicio:
          elJuego.invalidate();
          Terreno nuevo = new Terreno(2,2,new MapBit(piso1) , new MapBit(muro));
          elJuego.queTerrenoDibujo(nuevo);
      default: break;
  }
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
}