原文地址: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 类为菜单工具类,提供一些通用的菜单相关的帮助方法。