我正在尝试在屏幕上获取图像的坐标。我目前在一个活动中有一个ImageView。我了解到,只有在创建布局后才能调用getLocationOnScreen()方法,因此在oncreate函数中调用此方法将返回[0,0]。但是我不知道如何获得此方法以返回正确的值。我尝试覆盖各种超类方法,例如onstart方法或onTouchEvent方法,但它仍然向我返回[0,0]。我目前拥有的代码如下:
@Override
public void onCreate(Bundle savedInstanceState)
{
// Some code here after which ..
image = (ImageView) findViewById(R.id.imageVfi);
image.setImageBitmap(imageData.entrySet().iterator().next().getValue());
}
然后我有重写的onStart方法
@Override
public void onStart()
{
super.onStart();
image.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int[] dim = new int[2];
image.getLocationOnScreen(dim);
new AlertDialog.Builder(DisplayPicture.this)
.setIcon(R.drawable.icon)
.setTitle("Touch coordinates : " +
String.valueOf(dim[0]) + "x" + String.valueOf(dim[1]))
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
}
}).show();
// image calculations go here
return true;
}
});
}
这将0X0返回给我。任何帮助深表感谢。
最佳答案
ImageView没有提供在屏幕上获取其图像位置的方法。您只能查询ImageView本身的位置。您可以尝试使用ImageView.getImageMatrix(),但不确定在图像居中时(相对于缩放比例等)是否填充它。
关于java - ImageView getLocationtOnScreen android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5768291/