2012-02-28 196 views
0

我這樣做,當點擊視圖我試圖獲得協調的點擊視圖。現在我正在世界共同oridates值我想要得到它在本地查看座標 檢查下面的代碼轉換視圖點擊座標從世界座標到本地?

public void objectClick(View objectClicked) 
    { 

     int [] locationOfViewInWindow=new int[2]; 
     int Object = objectClicked.getId(); 
     View img= (View)findViewById(Object); 
     objectClicked.getLocationInWindow(locationOfViewInWindow); 
     Log.d("Check:","locn in window" + locationOfViewInWindow[0]+ " "+ locationOfViewInWindow[1]); 
     switch (hObject) { 


    case R.id.imageView1: 
      case R.id.imageView2:...... 
        case.R.id.imageview11: 
     ImageView drawable= (ImageView)findViewById(objectClicked.getId()); 
       Drawable d = drawable.getDrawable(); 

      boolean flag = d.getTransparentRegion().contains(locationOfViewInWindow[0], locationOfViewInWindow[1]); 

       Log.d("Check", "Opacity" + flag); 


boolean flag is returning me null because the region of transparent it is checking w.r.t to world co-ordinate 

Suggestion is appreciated 

回答

0

您應該擴展視圖類爲你的對象和使用的onTouchEvent獲得點擊位置:

public boolean onTouchEvent(MotionEvent event) { 
int eventaction = event.getAction(); 

switch (eventaction) { 
    case MotionEvent.ACTION_DOWN: 
     // finger touches the screen 
     break; 

    case MotionEvent.ACTION_MOVE: 
     // finger moves on the screen 
     break; 

    case MotionEvent.ACTION_UP: 
     // finger leaves the screen 
     break; 
} 

// tell the system that we handled the event and no further processing is required 
return true; 

}

您可以使用event.getX()和event.getY()來獲取觸摸事件的位置。