Преобразовать координаты View Click из мировых координат в локальные? - PullRequest
0 голосов
/ 28 февраля 2012

Я делаю это, когда нажимаю на Представление. Я пытаюсь получить координату щелчка на представлении. Теперь я получаю значение в мировых координатах. Я хочу получить его в местных координатах. проверьте код ниже

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 

1 Ответ

0 голосов
/ 28 февраля 2012

Вы должны расширить класс View для своих объектов и использовать 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 (), чтобы получить позицию события касания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...