When you use imageview with image inside like above image and you want to get position of image.
This is the result, this function will return a int array with two elements for left and top position of image.
public static int[] getBitmapOffset(ImageView img, Boolean includeLayout) { int[] offset = new int[2]; float[] values = new float[9]; Matrix m = img.getImageMatrix(); m.getValues(values); offset[0] = (int) values[5]; offset[1] = (int) values[2]; if (includeLayout) { ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) img.getLayoutParams(); int paddingTop = (int) (img.getPaddingTop() ); int paddingLeft = (int) (img.getPaddingLeft() ); offset[0] += paddingTop + lp.topMargin; offset[1] += paddingLeft + lp.leftMargin; } return offset; }
Source http://stackoverflow.com/questions/6023549/android-how-to-get-the-image-edge-x-y-position-inside-imageview