谷歌眼镜GDK开发指南之Immersions

原文地址:http://bbs.seacat.cn/thread-899-1-1.html


Immersions(沉浸式)可以提供更多的自定义体验。

可以使用Android标准的Activity来创建immersions,但为Glass书写activity请记住一下几点:


1、为640 × 360像素的屏幕设计UI
2、为Glass设计有意义的交互
3、不要依靠复杂的触控手势或界面模式
4、下滑通常是退回 activity 堆栈,它的功能更像移动设备上的返回按钮
5、在你的Android manifest中的<activity> 元素的 android:icon属性设置一个50*50像素的图标。




创建菜单


创建菜单资源跟安卓平台一样,但有如下几个原则:
1、提供一个50*50的图标,白色背景透明。
2、名称要短,来描述行为或操作(例如:分享)。


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



这是个创建菜单资源的示例,更多信息可参见Android SDK 文档。




处理菜单回调


onCreateOptionsMenu() 解析XML菜单资源。
onPrepareOptionsMenu() 当需要时显示或隐藏菜单。例如可为不同的操作而显示不同的菜单。
onOptionsItemSelected() 处理用户的菜单操作。


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() 方法来显示菜单:


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



MenuUtils 类为菜单工具类,提供一些通用的菜单相关的帮助方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值