Touchscreenberührungslänge

  • Antworten:7
  • Bentwortet
Julian Krebs
  • Forum-Beiträge: 22

10.02.2013, 14:55:37 via Website

Hallo,
gibt es irgendeine Möglichkeit in Android die Länge einer Touchscreenberührung(Zeit) herauszufinden. Oder kann ich das mit einem OnClickListener umgehen?

Antworten
Schorn Stein
  • Forum-Beiträge: 20

10.02.2013, 21:47:29 via App

mach ein ontouch Event mit einem Action down also wenn du den Touchscreen berührst und dann lässt du einen thread/runnable laufen mit deiner gewünschten zeit, im Prinzip eigentlich simple

es ist schon eine Weile her, das ich für Android programmiert habe aber es sollte so klappen

viel Spaß

Antworten
Julian Krebs
  • Forum-Beiträge: 22

12.02.2013, 07:08:45 via Website

Danke schön:)

Antworten
Julian Krebs
  • Forum-Beiträge: 22

13.02.2013, 22:05:34 via Website

vielleicht kannst du das mir noch mal genauer erklären, bzw. konkrete codebeispiele bitte zeigen, weil ich programmiere android auch noch nicht so lange...

Antworten
Schorn Stein
  • Forum-Beiträge: 20

14.02.2013, 19:53:46 via Website

ich versuche es mal

1LinearLayout deinLayout = (Linearlayout) findViewById (R.id.deinLayout)
2 deinLayout.setOnTouchListener(new OnTouchListener() {
3
4 @Override
5 public boolean onTouch(View v, MotionEvent event) {
6 switch(event.getAction())
7 {
8 case MotionEvent.ACTION_DOWN: //Wenn du denn TouchScreen berührst
9touchscreenPressed=true;
10 do {
11 final Runnable r = new Runnable()
12 {
13 public void run()
14 {
15 zeit = zeit +1;
16 handler.postDelayed(this, 1000);
17 }
18 };
19
20 handler.postDelayed(r, 1000); }
21while(touchscreenPressed==true);
22
23 break;
24
25 case MotionEvent.ACTION_UP: //Wenn du den Finger vom Touchcreen nimmst
26
27touchscreenPressed=false;
28Und hier dann den Integer zeit in einen TextView ausgeben oder als Alert (oder so wie du es magst)

29 }
30 return false;
31 }
32 });

So ungefähr würde ich sagen
Du musst dann halt den Integer "zeit" und den BOOLEAN "touchpressed" erstmal definieren.
Ich denke mal du hast ein bisschen ahnung und kannst den quellcode einigermaßen verstehen.
Ich habe das jetzt einfach mal so zusammengereimt und weiß auch nicht ob es funktionieren wird, du kannst es auch mal googeln:
Einmal ontouchlistener example, und das andere runnable threads oder repeat threads.

Ansonsten frag nochmal^^

Antworten
Julian Krebs
  • Forum-Beiträge: 22

16.02.2013, 22:36:57 via Website

Super danke, sehr gute Idee, wäre alleine nicht draufgekommen....Das ist genau das, was ich suche......

Antworten
Enrico
  • Forum-Beiträge: 33

18.02.2013, 20:29:16 via Website

Ähm also ich will ja nicht meckern aber dafür ist doch System.currentTimeMillis() ideal oder?
drei variablen
long start =0;
long end =0;
long differenz = 0;

in case MotionEvent.ACTION_DOWN:
start = System.currentTimeMillis();

in case MotionEvent.ACTION_UP:
end = System.currentTimeMillis();
differenz = end-start;

Schon hast du die Zeit in ms sehr genau. Wenns genauer sein muss nimmst du System.nanoTime();

Gruß

Antworten
Julian Krebs
  • Forum-Beiträge: 22

19.02.2013, 19:49:49 via Website

perfekt wenn auch so einfach geht, danke

Antworten