Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mär 19, 2024 09:19

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: Android 2 Finger Zoom
BeitragVerfasst: Fr Aug 21, 2015 17:09 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1272
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Wie kann ich hier das Zoomen mit 2 Fingern einbauen ?

Probehalber habe ich auch onDoubleTap einbauen wollen, aber da reklamiert Eclipse wegen den @Override.

Mit Google habe ich bis jetzt nichts schlaues gefunden. :evil:

Code:
  1. public class MyGLSurfaceView extends GLSurfaceView {
  2.  
  3.     float startx = 0.0f;
  4.     float starty = 0.0f;
  5.     float zoom = 0.0f;
  6.  
  7.     private MyGLRenderer mRenderer;
  8.  
  9.     public static Context mContext;
  10.  
  11.     public MyGLSurfaceView(Context context) {
  12.         super(context);
  13.  
  14.         mContext = context;
  15.  
  16.         // Create an OpenGL ES 2.0 context.
  17.         setEGLContextClientVersion(2);
  18.  
  19.         // Set the Renderer for drawing on the GLSurfaceView
  20.         mRenderer = new MyGLRenderer();
  21.         setRenderer(mRenderer);
  22.  
  23.         // Render the view only when there is a change in the drawing data
  24.         setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
  25.  
  26.     }
  27.  
  28.     //
  29.     // @Override
  30.     // public boolean onDoubleTap (MotionEvent e){
  31.     //
  32.     // }
  33.  
  34.     @Override
  35.     public boolean onTouchEvent(MotionEvent event) {
  36.  
  37.         float x = event.getX();
  38.         float y = event.getY();
  39.  
  40.         switch (event.getAction()) {
  41.  
  42.         case MotionEvent.ACTION_POINTER_DOWN: // Wie geht das ?
  43.             Log.e("Left", " msg");
  44.             System.out.println("------------- 2 Finger --------------");
  45.             break;
  46.  
  47.         case MotionEvent.ACTION_DOWN:
  48.             // finger touches the screen
  49.             break;
  50.         case MotionEvent.ACTION_MOVE:
  51.             // finger moves on the screen
  52.             if (x < 100) { // Niveau
  53.                 VLI.niveau = VLIMasse.SchienenLaenge - (VLIMasse.SchienenLaenge / (getHeight() / y)) - 50;
  54.                 if (VLI.niveau < -50) {
  55.                     VLI.niveau = -50;
  56.                 } else if (VLI.niveau > VLIMasse.L + 50) {
  57.                     VLI.niveau = VLIMasse.L + 50;
  58.                 }
  59.             } else if (x > getWidth() - 100) { // Anzeiger Zoomen
  60.                 zoom += (y - starty) / 2;
  61.                 if (zoom > 1800) {
  62.                     zoom = 1800;
  63.                 } else if (zoom < -100) {
  64.                     zoom = -100;
  65.                 }
  66.                 VLI.skalierungFaktor = 0.0010f * (zoom / 3.0f + 70) / 10.0f;
  67.             } else { // Anzeiger drehen
  68.                 mRenderer.mAngleX += (x - startx) / 4;
  69.                 if (mRenderer.mAngleX > 360) {
  70.                     mRenderer.mAngleX -= 360;
  71.                 } else if (mRenderer.mAngleX < 0) {
  72.                     mRenderer.mAngleX += 360;
  73.                 }
  74.  
  75.                 mRenderer.mAngleY += (y - starty) / 4;
  76.                 if (mRenderer.mAngleY > 360) {
  77.                     mRenderer.mAngleY -= 360;
  78.                 } else if (mRenderer.mAngleY < 0) {
  79.                     mRenderer.mAngleY += 360;
  80.                 }
  81.  
  82.                 if ((mRenderer.mAngleX > 20) & (mRenderer.mAngleX < 160)) {
  83.                     VLI.schnitt = true;
  84.                 } else {
  85.                     VLI.schnitt = false;
  86.                 }
  87.             }
  88.             requestRender();
  89.             break;
  90.         case MotionEvent.ACTION_UP:
  91.             // finger leaves the screen
  92.  
  93.             break;
  94.         }
  95.         starty = y;
  96.         startx = x;
  97.         return true;
  98.     }

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.028s | 17 Queries | GZIP : On ]