现在我有一个ImgeView,它有一个圆圈,我想找到那个圆圈的中心点,所以我尝试了以下代码,但它似乎无法正常工作
int[] location = new int[2];
imageView.getLocationOnScreen(location);
int radius=imageView.getHeight()/2;
int[] center=new int[2];
center[0]=location[0]+radius;
center[1]=location[1]+radius;
所以“位置”得到的坐标是否是图像视图的顶点?
请帮我了解如何获取图像视图的中心点。
答案 0 :(得分:10)
我假设下面的情况:
您将加载一个ImageView(来自xml或代码),并在myImageView(例如)中引用它。现在,您希望计算myImageView的中心,而不管它在屏幕上的位置。
如果我的假设是正确的,那么下面可能是您正在寻找的解决方案:
int centerXOnImage=myImageView.getWidth()/2;
int centerYOnImage=myImageView.getHeight()/2;
int centerXOfImageOnScreen=myImageView.getLeft()+centerXOnImage;
int centerYOfImageOnScreen=myImageView.getTop()+centerYOnImage;
答案 1 :(得分:0)
您可以使用以下方式获取左上角坐标:
ImageView iv = (ImageView)findViewById(R.id.image_view);
Rect rect = iv.getDrawable().getRect();
int xOffset = rect.left;
int yOffset = rect.top;
根据高度/ 2和宽度/ 2,您可以建立ImageView的中心。
答案 2 :(得分:0)
除了Chandan的回答, 说我们使用相同的代码:
int centerXOnImage=myImageView.getWidth()/2;
int centerYOnImage=myImageView.getHeight()/2;
int centerXOfImageOnScreen=myImageView.getLeft()+centerXOnImage;
int centerYOfImageOnScreen=myImageView.getTop()+centerYOnImage;
如果您的myImageView.getWidth()
返回0,您可能需要进行一些修改:
myImageView.measure(0,0);
int centerXOnImage=myImageView.getMeasuredWidth()/2;
int centerYOnImage=myImageView.getMeasuredHeight()/2;
请注意,您可能希望在代码中创建myImageView并将其添加到根视图后执行此操作。