我想獲取圖像在屏幕上的座標。我目前在一個活動中有一個ImageView。我明白getLocationOnScreen()方法只能在佈局創建後調用,所以在oncreate函數中調用這個方法會返回[0,0]。但我不知道如何讓這個方法返回正確的值。我嘗試了各種超類方法,例如onstart方法或onTouchEvent方法,它仍然向我返回[0,0]。我目前擁有的代碼如下:ImageView getLocationtOnScreen android
@Override
public void onCreate(Bundle savedInstanceState)
{
// Some code here after which ..
image = (ImageView) findViewById(R.id.imageVfi);
image.setImageBitmap(imageData.entrySet().iterator().next().getValue());
}
然後,我有我已經重寫
@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到我OnStart方法。任何幫助深表感謝。
我想補充一點,我認爲這是把整個屏幕圖像,因爲當我打電話image.getHeight()函數返回800個像素,image.getWidth函數返回480個像素這是與屏幕分辨率相同。但是,實際可見的圖像並不佔用整個屏幕。任何想法如何我可以解決這個問題? – kushaldsouza 2011-04-24 03:44:36
請注意,其餘空白區域不在原始圖像內。 – kushaldsouza 2011-04-24 04:09:40
我剛剛意識到我在ImageView上被稱爲getLocationOnScreen方法,而我的圖像並不佔據整個視圖。所以這意味着我必須以某種方式將屏幕座標映射到實際的圖像座標。我不知道如何去做這個 – kushaldsouza 2011-04-24 05:00:03