Tile map movement by touch
My experience with Android and handling touch events is that it's very hard to look at the code and understand how it will work when you're running the application. It can even be a difference with different Android devices, so make sure that you test your app on an Android 2.3.5 device as well as an Android 4+ device (assuming you're targeting Android 2.3.5 as well).

From what I understand, "moving the map by touch" you mean that you are scrolling through the map, like a HorizontalScrollView combined with an ordinary (vertical) ScrollView. It is said to be possible to combine these two together to create a "two dimensional scroll view", I myself have not been able to accomplish that in a way that creates a smooth user experience (I actually think this is a bad way of doing it). I have however, managed to find a quite easy-to-use Android view class that takes care of all this scrolling. It seems however like the link has disappeared but you could try this GitHub project, if that doesn't work for you then let me know either by a comment or find me in The 2nd Monitor chatroom and I can provide the implementation I'm using.

As for your existing code, it's clean, it's straight-forward. But where/how is speedX/speedY and touchX/touchY used? Could the problem be there?

I only have one suggestion for improvement of your code:

switch(event.getAction()) {


Should be (see here)

switch(event.getActionMasked()) {


A general suggestion when working with touch events:

Log, Log, and Log Use Log.d("YOUR_TAG", "A whole bunch of information") like a maniac! The more you log, the more you will hopefully be able to understand about MotionEvents, and the better code you will be able to write.