2016-07-14 3 views
0

Ich versuche, eine Kachel auf dem Microsoft Band 2 mit Android Studio zu erstellen. Ich habe mich gefragt, ob es möglich ist, Bilder zu einem Knopf hinzuzufügen, wie ich es auf einem Android-Handy tun könnte. Meine andere Frage betrifft Checkboxen. Gibt es Checkboxen auf der Band? Wenn nicht, gibt es eine andere Möglichkeit, ähnliche Funktionen zu erhalten? Ich brauche Benutzer, um mehrere Dinge für eine einzelne Frage anklicken zu können. Jede Hilfe würde sehr geschätzt werden.Bilder und Checkboxen mit dem Microsoft Band 2

Antwort

1

Für die Kontrollkästchen würde ich ein Layout machen, wo Sie eine kleine Textschaltfläche neben einer größeren Textschaltfläche innerhalb eines Layouts haben. Wenn der große Textknopf angeklickt wird, rufen Sie eine Aktualisierungsfunktion von Ihrem Empfänger auf, die den Text des kleineren Knopfes ändert (möglicherweise ein Sternchen oder ein anderes Zeichen, das wie ein Aufzählungszeichen aussieht und scheinbar erscheint und verschwindet). Zum Beispiel könnten Sie Ihre Update-Funktion wie folgt aussehen (leichte Modifikation aus dem Codebeispiel Fliesen in der SDK angegeben):

private final int bulletTextId = 12; 
private final int textButtonId = 21; 
private boolean isActiveBullet = false; 

private void onButtonClicked(int clickedID) { 
    switch (clickedID) { 
     case textButtonId: 
      String text = ""; 

      isActiveBullet = !isActiveBullet; 
      if (isActiveBullet) text = "*"; 

      try { 
       client.getTileManager().setPages(tileId, 
         new PageData(pageId1, 0) 
           .update(new TextBlockData(bulletTextId, text)) 
           .update(new TextButtonData(textButtonId, "Text Button"))); 
      } catch (BandIOException e) {e.printStackTrace();} 

      break; 
     default: 
      Log.e("", "Unknown button press received"); 
    } 
} 

für mehrere Schaltflächen, die Sie möglicherweise eine Karte Schaltfläche müssen die entsprechenden boolean und zu wechseln. Wenn Sie das nicht herausfinden können, kommentieren Sie und ich werde weitermachen.

Ursprünglich dachte ich, es würde Sinn machen, die Hintergrundfarbe zu ändern, aber das scheint nicht von der SDK unterstützt zu werden.

Wie für die Verwendung eines Bildes für den Hintergrund, ich glaube nicht, dass das derzeit unterstützt wird, nur von der Funktionsdefinitionen in der SDK-Quellcode, aber ich würde wirklich gerne wissen, dass auch sicher.

Edit: Ich fand dies kurz nach der Buchung. Es scheint, dass Sie Bitmaps als Masken verwenden können, aber ich bin mir nicht sicher, wie das geht. Hoffentlich wird jemand kommen und uns sagen, weil ich wissen möchten :)

„8.5.1 verwendete Symbole wie FilledButton Masken Durch die Definition eines Symbols Bitmap, die als Maske wirkt und dann überlagernde, dass Icon über einen FilledButton (siehe Negative Margins ) , können Sie die Wirkung des Symbolbild erzeugen kann sichtbar werden, wenn die Taste gedrückt wird. das heißt, die Icon Bitmap ist so definiert, haben transparente Pixel s für das gewünschte Bild und opake Pixel els e wo . Wenn der Benutzer drückt den FilledButton , die FilledButton Farbe ändert aber durchscheint nur die transparenten Abschnitte des der Icon-Bitmap. "

Und hier ist anderer relevanter Code, wenn Sie es wollen:

private PageLayout createButtonLayout() { 
    return new PageLayout(
      new ScrollFlowPanel(15, 0, 260, 105, FlowPanelOrientation.HORIZONTAL) 
        .addElements(new TextBlock(0, 0, 20, 45, TextBlockFont.MEDIUM) 
          .setMargins(5, 0, 0, 0) 
          .setId(bulletTextId)) 
        .addElements(new TextButton(0, 0, 190, 45).setMargins(5, 0, 0, 0) 
          .setId(textButtonId).setPressedColor(Color.BLUE)) 
    ); 
} 

private BroadcastReceiver messageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction() == TileEvent.ACTION_TILE_OPENED) { 
     } else if (intent.getAction() == TileEvent.ACTION_TILE_CLOSED) { 
     } 

     /* ***** THIS IS THE ONLY EVENT WE ACTUALLY CARE ABOUT ***** */ 
     else if (intent.getAction() == TileEvent.ACTION_TILE_BUTTON_PRESSED) { 
      TileButtonEvent buttonData = intent.getParcelableExtra(TileEvent.TILE_EVENT_DATA); 
      appendToUI("button is " + isActiveBullet + " "); 
      onButtonClicked(buttonData.getElementID()); 
     } 
    } 
}; 
Verwandte Themen