2016-07-14 6 views
0

Androidスタジオを使用してMicrosoft Band 2でタイルを作成しようとしています。私はAndroidの携帯電話でできるようにボタンに画像を追加することが可能かどうか疑問に思っていました。私の他の質問は、チェックボックスについてです。バンドにチェックボックスはありますか?同様の機能を得る別の方法がないのであれば? 1つの質問に対して複数のものをクリックできるようにする必要があります。どんな助けでも大歓迎です。Microsoft Band 2の画像とチェックボックス

答えて

1

チェックボックスについては、レイアウト内の大きなテキストボタンの横に小さいテキストボタンがあるレイアウトを行います。大きなテキストボタンがクリックされると、小さなボタンのテキストを変更する更新機能を呼び出します(アスタリスクや箇条書きのようなその他の文字が表示されて消えているようです)。たとえば、あなたの更新機能は、この(SDKで与えられた例タイルコードから若干の変更)のようになります。

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"); 
    } 
} 

複数のボタンのためには、該当するものをブールAND切り替えるためのボタンのマップが必要になる場合があります。あなたがそれを理解できなければ、コメントしてフォローアップします。

元々、私は背景色を変更することが理にかなっていると思っていましたが、それはSDKによってサポートされていないようです。

バックグラウンド用の画像は、現在サポートされているとは言えませんが、sdkのソースコード内の関数定義を見るだけでは、確かにそのことを知りたいと思います。

編集:投稿した直後にこれが見つかりました。あなたはマスクとしてビットマップを使用することができますが、私はそれを行う方法がわかりません。うまくいけば、誰かが一緒に来て、私も知っていただきたいと思いますので、私たちに教えてくれます:)

ことを重畳し、「8.5.1 マスクとして機能アイコンのビットマップを定義することにより FilledButton マスク として使用されるアイコンと FilledButton 以上のアイコンが アイコンビットマップ が に定義されている。つまり、ボタンが押されたときにあなたが見えるようになるアイコン画像の効果を作成することができ、 ( 負 マージン を参照してください)透明ピクセルを持っていますsであり、不透明ピクセルels e です。 ユーザがFilledButton を押下すると、 FilledButton色 アイコンのビットマップの のみ透過部を通して が、番組を変更します。あなたがそれをしたい場合は、「ここに

し、他の関連するコードです:

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()); 
     } 
    } 
}; 
関連する問題