D
DroidGuy
Neues Mitglied
- 0
Hi,
hätte ne Frage bezühlich Mutlitouch Berührungen auf dem Display. Und zwar teste ich das gerade mit 2 Textviews , die quasi als Hintergrund nen Button.png haben und somit einen Button simulieren sollen. Sobald ich mit dem Finger über diesen Textview fahre, soll ein Sound abgespielt werden, aber nur einmal. Sobald der Finger aus dem Bereich des Textviews bewegt wird und anschließend wieder hinein, soll wieder der Sound abgespielt werden (1x), das soll auch beim Fingertippen auf das Display funktionieren und auch bei Multitouch Berührungen. Also als ob man mit dem Finger über virtuelle Klaviertasten fährt.
Hier ein kleiner Auschnitt...das Problem ist, dass der Log jedesmal angezeigt wird wenn die onTouchEvent() Methode aufgerufen wird und der Finger sich über dem Textview bewegt, also quasi immer denn wenn ich den Finger minimal bewege...
Hat vielleicht jemand ne Idee wie man das beheben kann?
hätte ne Frage bezühlich Mutlitouch Berührungen auf dem Display. Und zwar teste ich das gerade mit 2 Textviews , die quasi als Hintergrund nen Button.png haben und somit einen Button simulieren sollen. Sobald ich mit dem Finger über diesen Textview fahre, soll ein Sound abgespielt werden, aber nur einmal. Sobald der Finger aus dem Bereich des Textviews bewegt wird und anschließend wieder hinein, soll wieder der Sound abgespielt werden (1x), das soll auch beim Fingertippen auf das Display funktionieren und auch bei Multitouch Berührungen. Also als ob man mit dem Finger über virtuelle Klaviertasten fährt.
Hier ein kleiner Auschnitt...das Problem ist, dass der Log jedesmal angezeigt wird wenn die onTouchEvent() Methode aufgerufen wird und der Finger sich über dem Textview bewegt, also quasi immer denn wenn ich den Finger minimal bewege...
Hat vielleicht jemand ne Idee wie man das beheben kann?
Code:
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean [] newButtonStatesArray = new boolean [buttonStatesArray.length];
Rect buttonRect = null;
for(int touchIndex = 0; touchIndex < event.getPointerCount(); touchIndex++) {
int x = (int) event.getX(touchIndex);
int y = (int) event.getY(touchIndex);
for(int buttonIndex = 0; buttonIndex < buttonList.size(); buttonIndex++) {
View button = buttonList.get(buttonIndex);
int[] coordinates = new int[2];
button.getLocationOnScreen(coordinates);
int buttonX = coordinates[0];
int buttonY = coordinates[1];
buttonRect = new Rect(buttonX, buttonY, buttonX + button.getWidth(), buttonY + button.getHeight());
if(buttonRect.contains(x, y)) {
Log.d("onTouchEvent()", "Button: " + getResources().getResourceEntryName(buttonList.get(buttonIndex).getId()) + " is touched");
}
}
}
}