Google Glass:设计是/否选项菜单

时间:2015-01-11 14:58:30

标签: android google-glass

我想设计一个带有“是”和“否”选项的菜单。

它看起来像是原生Glassware中的共享选项,当人们在菜单中点击“分享”时,Glass会要求用户选择“facebook”或“Google +”。

我想用相同的功能设计我的菜单,并记录用户选择其他功能的输入。

但我对Android很新,所以我不太清楚如何做到这一点。

我用Google搜索并发现了一些类似的问题:

我认为它是某种嵌套菜单,但这个问题说不应该嵌套在Glass中。

Can you create more than one level of nested timeline cards on Glass?

还有另一种类似的解决方案

http://www.androidhive.info/2014/10/how-to-create-google-glass-options-menu/

但它在程序中使用了多个活动,它适用于比“是”/“否”选择更复杂的操作。

所以我认为我以错误的方式搜索嵌套菜单。任何人都可以给我最后的答案,我是否可以实施此操作。如果可以,它的确切名称是什么,所以我可以谷歌实施方法。

由于

2 个答案:

答案 0 :(得分:1)

您应该尝试利用Google Glass可以做的事情;在这种情况下,我建议你使用语音识别来做一个简单的是或否的用户响应 -

用户界面图

(Live card)--> app launcher
|                      |
Share                  Stop
 | onGesture activate    |
 | voice recognition    terminate the app
 | to take user input
 onActivityResult()
   if it's "facebook" then go share on FB
   if it's "Google plus" then go share on G+

以下是Google Glass开发人员网站的参考资料 - Voice Recognition

该部分有一个非常易于理解的教程,介绍如何实现语音识别。

下面是我的Glass应用程序的示例UI图。第一个菜单项接受语音命令并要求用户确认其是否正确:例如,询问用户"你说过胡萝卜'? "并将输入视为“是”'或者没有'确定以下行动。

enter image description here

最后,如果您愿意,请查看my HelloWorld Glass示例项目,了解有关实施的一些想法。指向Google代码上托管项目的直接链接位于:https://code.google.com/p/hello-world-google-glass/source/browse/#git%2FHelloWorld

答案 1 :(得分:0)

请查看Google关于如何将菜单添加到Glass应用程序的官方文档,将为您提供如何继续设计玻璃菜单选项的方向,而无需执行大量步骤:

  • 如果要在Glass活动创建菜单资源中添加yes / no选项,然后在用户操作上显示它们,例如在您的活动具有焦点时点击。
  • 请注意,Glass菜单不支持可检查项目。
  • 对于每个菜单项,提供50×50像素的菜单项图标。

以下是OK选项的代码段:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/Ok_menu_item"
    android:title="@string/Ok"                <!-- imperative verb -->
    android:icon="@drawable/ic_done_50" />   <!-- white in color on
                                                 transparent background
                                                 -->
   </menu>

菜单中的回调按以下方式处理:

  • onCreateOptionsMenu()使XML菜单资源膨胀。
  • onPrepareOptionsMenu()根据需要显示或隐藏菜单项。例如,您可以根据用户的操作显示不同的菜单项。
  • onOptionsItemSelected()处理用户选择。

以下是Java代码的一小段代码:

    public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.stopwatch, menu);
        return true;
    }

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // Implement if needed
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection. Menu items typically start another
        // activity, start a service, or broadcast another intent.
        switch (item.getItemId()) {
            case R.id.stop:
                startActivity(new Intent(this,
                StopStopWatchActivity.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

要显示菜单,请在需要时调用openOptionsMenu(),例如点击触控板。以下示例检测活动上的点击手势,然后调用openOptionsMenu()。

    public class MainActivity extends Activity {
    // ...
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
              openOptionsMenu();
              return true;
          }
          return super.onKeyDown(keyCode, event);
    }
}

希望这会有所帮助!!