Der gute alte "touch" will nicht so wie ich will :D

C

computer_freak

Fortgeschrittenes Mitglied
7
Hey!

Ich habe auf meiner mainlayout.xml ein linearlayout, das weitere linearlayouts,
buttons und textview kapselt.
Nun will ich, dass, wenn man einen finger von links nach rechts/ rechts nach links bewegt sich der text ändert. Die events zum text ändern habe ich schon.

Das witzige ist, auf der VM funktioniert's!


Ich kann euch gerne mal meinen Ansatz zeigen:
layout_Root ist das LinearLayout, indem alles drinn ist.
Das Problem ist,
Code:
        layout_Root.setOnTouchListener(new OnTouchListener()
        {

	    @Override
	    public boolean onTouch(View v, MotionEvent event)
	    {
		int action = event.getAction();
		
		Log.d("onTouch", String.valueOf(event.getPointerCount()));
		
		if(action == MotionEvent.ACTION_MOVE)
		{
		    Log.d("onTouch", "action == action move");
		    float distanceX = event.getX(0) - Move_X;
		    float distanceY = event.getY(0) - Move_Y;
		    
		    if(Math.abs(distanceX) > Math.abs(distanceY))
		    {
			if(distanceX > 0)
			{
			    Log.d("onTouch", "Moved positive x");
			    ++MovePrecisionpX;
			}
			else
			{
			    Log.d("onTouch", "Moved negative x");		
			    ++MovePrecisionnX;
			}
			
			if(MovePrecisionpX >= 5)
			{
			    PreviewPrev(null);
			    MovePrecisionpX = 0;
			    MovePrecisionnX = 0;
			}
			
			if(MovePrecisionnX >= 5)
			{
			    PreviewNext(null);
			    MovePrecisionpX = 0;
			    MovePrecisionnX = 0;
			}
			
		    }
		    
		    Move_X = event.getX(0);
		    Move_Y = event.getY(0);
		}

		
		return false;
	    }
            
        });

Ich muss zugeben dass es nicht sonderlich gut gecoded ist :)
Die App ist für version 2.2 entwickelt worden, auf meinem galaxy s i9000 ist jedoch nur android
version 2.1 installiert.

Halte ich das smarphone seitlich dann gehts!! Halte ich es "richtig" geht es nicht.


Und: Muss ich es so machen wie oben; gibt es keine vordefinierten events wie etwa
onTouch(TouchArgs ta)
{
switch(ta)
{
case TOUCH_EVENT_LEFT_TO_RIGHT:
break;
}

}

Dass würde das ganze noch ein stückchen leichter machen. So wundert es mich, dass ich solche vordefinierten events noch nicht gefunden habe, bei einem OS das auf touch basiert !

Hoffe ihr könnt mir helfen!
 
+up+

Gibt es noch andere möglichkeiten die touch events wie z.b.
"Finger bewegte sich von links nach rechts" abzufangen? :D
 

Ähnliche Themen

M
Antworten
3
Aufrufe
161
moin
M
L
Antworten
15
Aufrufe
908
jogimuc
J
M
Antworten
2
Aufrufe
629
Mozart40
M
Zurück
Oben Unten