2015-04-17 1 views
1

Lorsque vous dessinez sur la vue sans zoom, cela fonctionne très bien. Voir la capture d'écran enter image description hereDessiner sur une vue personnalisée avec le zoom ne fonctionne pas correctement

Mais lorsque vous effectuez un zoom avant puis dessiner sur la vue Il est légèrement en haut ou en bas. Voir la capture d'écran

With Zoom

Voici mon code pour une vue personnalisée http://www.paste.org/78026 et zoom http://www.paste.org/78027 et mon xml http://www.paste.org/78028

S'il vous plaît pouvez-vous me dire où je me trompe

Répondre

0

Enfin, après beaucoup de recherche J'ai trouvé comment obtenir X, Y lorsque la vue est agrandie. Il peut être utile à quelqu'un

// Get the values of the matrix 
float[] values = new float[9]; 
matrix.getValues(values); 

// values[2] and values[5] are the x,y coordinates of the top left  corner of the drawable image, regardless of the zoom factor. 
// values[0] and values[4] are the zoom factors for the image's width and height respectively. If you zoom at the same factor, these should both be the same value. 

// event is the touch event for MotionEvent.ACTION_UP 
float relativeX = (event.getX() - values[2])/values[0]; 
float relativeY = (event.getY() - values[5])/values[4];