2016-06-28 1 views
1

Ich entwickle ein Zifferblatt für Android Wear. Um eine glatte Grafik zu erhalten, habe ich von der konventionellen Zeichenleinwand zu OpenGL gewechselt (d. H. Von CanvasWatchFaceService zu Gles2WatchFaceService). Für die Berührungseingabe verwendete ichWie kann ich Touch-Eingaben bei Android Wear mit OpenGL (Gles2WatchFaceService) erhalten?

@Override 
    public void onTapCommand(int tapType, int x, int y, long eventTime) { ... } 

Das scheint nicht unter Gles2WatchFaceService funktionieren. Wie kann ich noch Berührungseingabe erhalten?

Antwort

1

Ich habe es gefunden. Der Stil des Gesichts Uhr muss entsprechend eingestellt werden (setAcceptsTapEvents) in der onCreate Funktion:

@Override 
    public void onCreate(SurfaceHolder surfaceHolder) { 

     super.onCreate(surfaceHolder); 

     setWatchFaceStyle(new WatchFaceStyle.Builder(CronosurfGLWatchFace.this) 
       ... 
       .setAcceptsTapEvents(true) // <== HERE!! 
       ... 
       .build()); 
     ... 
    } 

Es ist das gleiche wie für CanvasWatchFaceService ist. Aus irgendeinem Grund habe ich diese Stileinstellung verloren, während ich meinen Code von Canvas zu OpenGL änderte.