Google 玻璃:设计 yes/no 选项菜单
Google Glass: Design yes/no option menu
我想设计一个带有选项 "yes" 和 "no" 的菜单。
它看起来像本地 Glassware 中的共享选项,当人们在菜单中触摸 "share" 时,Glass 会要求用户选择 "facebook" 或 "Google+"。
我想设计我的菜单,功能相同,记录用户的选择,作为其他功能的输入。
但我对 Android 还是个新手,所以我不太清楚该怎么做。
我 Googled 发现了一些类似的问题:
我认为这是某种嵌套菜单,但这个问题说不应该在 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/
但程序中使用了多个activity,适合比"yes"/"no"选择更复杂的操作。
所以我想我 运行 并以错误的方式搜索了嵌套菜单。谁能给我一个最终的答案,我是否可以执行此操作。如果可以,它的确切名称是什么,这样我就可以 Google 实现方法。
谢谢
请查看 Google 关于如何向 Glass 应用程序添加菜单的官方文档,它将指导您如何继续为 Glass 设计菜单选项,而无需遵循步骤很多:
- 如果您想在 Glass 活动中添加 yes/no 选项,请创建菜单资源,然后在用户操作时显示它们,例如在 activity 获得焦点时点击。
- 请注意,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(),例如在触摸板上点击。以下示例检测 activity 上的点击手势,然后调用 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);
}
}
希望这会有所帮助!!
您应该尝试利用 Google Glass 的优势;在这种情况下,我建议您使用语音识别来获得像这样的简单的是或否用户响应 --
UI 图
(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
该部分有关于如何实现语音识别的漂亮 easy-to-understand 教程。
下面是我的 Glass 应用程序的示例 UI 图。第一个菜单项接受语音命令并要求用户确认是否正确:例如,询问用户 "Did you say 'carrot'? " 并输入 'yes' 或 'no' 以确定以下内容动作。
最后,如果喜欢,请看一看my HelloWorld Glass sample project for some ideas on the implementation. The direct link to the project hosted on Google Code is here: https://code.google.com/p/hello-world-google-glass/source/browse/#git%2FHelloWorld
我想设计一个带有选项 "yes" 和 "no" 的菜单。
它看起来像本地 Glassware 中的共享选项,当人们在菜单中触摸 "share" 时,Glass 会要求用户选择 "facebook" 或 "Google+"。
我想设计我的菜单,功能相同,记录用户的选择,作为其他功能的输入。
但我对 Android 还是个新手,所以我不太清楚该怎么做。
我 Googled 发现了一些类似的问题:
我认为这是某种嵌套菜单,但这个问题说不应该在 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/
但程序中使用了多个activity,适合比"yes"/"no"选择更复杂的操作。
所以我想我 运行 并以错误的方式搜索了嵌套菜单。谁能给我一个最终的答案,我是否可以执行此操作。如果可以,它的确切名称是什么,这样我就可以 Google 实现方法。
谢谢
请查看 Google 关于如何向 Glass 应用程序添加菜单的官方文档,它将指导您如何继续为 Glass 设计菜单选项,而无需遵循步骤很多:
- 如果您想在 Glass 活动中添加 yes/no 选项,请创建菜单资源,然后在用户操作时显示它们,例如在 activity 获得焦点时点击。
- 请注意,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(),例如在触摸板上点击。以下示例检测 activity 上的点击手势,然后调用 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);
}
}
希望这会有所帮助!!
您应该尝试利用 Google Glass 的优势;在这种情况下,我建议您使用语音识别来获得像这样的简单的是或否用户响应 --
UI 图
(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
该部分有关于如何实现语音识别的漂亮 easy-to-understand 教程。
下面是我的 Glass 应用程序的示例 UI 图。第一个菜单项接受语音命令并要求用户确认是否正确:例如,询问用户 "Did you say 'carrot'? " 并输入 'yes' 或 'no' 以确定以下内容动作。
最后,如果喜欢,请看一看my HelloWorld Glass sample project for some ideas on the implementation. The direct link to the project hosted on Google Code is here: https://code.google.com/p/hello-world-google-glass/source/browse/#git%2FHelloWorld