2012-02-28 23 views
0

私はこれをクリックしたときにこれをしています。ビュー私はビューのクリックの座標を取得しようとしています。今、私は世界の共同oridatesの値を取得しています私は、クリック位置を取得するためにあなたがあなたのオブジェクトのためのViewクラスを拡張する必要がありビューを変換する世界座標とローカル座標をクリックしますか?

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()を使用することができます。

関連する問題