我有一个只包含ImageView的活动。 ImageView中包含的drawable是从相机捕获的Bitmap。图像会自动缩放(保持位图的宽高比),以使缩放的宽度与ImageView的宽度相匹配,并且图像在屏幕上垂直居中。
我需要弄清楚实际drawable(不是ImageView本身)的左上角像素的坐标,但是ImageView类似乎没有给我一种方法。
我觉得我可能会根据原始位图的尺寸和ImageView的尺寸来计算它,但是这会涉及很多不必要的数学,并且容易出现浮点错误。
有没有人知道如何找到Drawable相对于ImageView的左上角像素的坐标?
感谢。
答案 0 :(得分:2)
查看ImageView源代码it translates a Matrix halfway the vertical size(即垂直居中),以便您可以使用ImageView
getImageMatrix()
方法检索它并检查垂直翻译由Matrix#getValues(float[])
。如果我读得对,它将是the sixth value。
我现在无法测试它,但它会是这样的:
Matrix matrix = iv.getImageMatrix ();
float[] values = new float[];
matrix.getValues(values);
float startY = values[5];