Consentire che il rettangolo sia cliccabile – android

Ho scritto una vista con canvas, che contiene molti rettangoli. Voglio che questi rettangoli siano usati come un button che apre una nuova attività. Come posso farlo?

  • differenza tra @id e @android: id
  • Servizio API restful
  • ORMLite: L'object interno DAO è nullo
  • Come verificare se una string TextView è stata tagliata (marquee)?
  • Come utilizzare un progetto di libreria con c e java apis su Android
  • Come analizzare la risposta di Json in android?
  • 2 Solutions collect form web for “Consentire che il rettangolo sia cliccabile – android”

    Bisogna stare attento con l'esempio di Suri Sahani, onTouchEvent viene chiamato a qualunque azione qualificata come un evento di touch, che significa premere, rilasciare, gesto di movimento, ecc. ( Android Event Listener Documentation ). Per utilizzare correttamente onTouchEvent è necessario controllare il tipo MotionEvent.

    List<Rect> retangles;//Assume these have been drawn in your draw method. @Override public boolean onTouchEvent(MotionEvent event) { int touchX = event.getX(); int touchY = event.getY(); switch(event){ case MotionEvent.ACTION_DOWN: System.out.println("Touching down!"); for(Rect rect : rectangles){ if(rect.contains(touchX,touchY)){ System.out.println("Touched Rectangle, start activity."); Intent i = new Intent(<your activity info>); startActivity(i); } } break; case MotionEvent.ACTION_UP: System.out.println("Touching up!"); break; case MotionEvent.ACTION_MOVE: System.out.println("Sliding your finger around on the screen."); break; } return true; } 

    Nel vostro onTouchEvent() sufficiente catturare i valori x e y e utilizzare il metodo contains(int x, int y) nella class Rect . Se contains(x, y) restituisce true, il touch si trova all'interno del rettangolo e quindi crea l'intento e inizia la nuova attività.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.