Android 创建菜单项Menu及获取手机分辨率

 

在Activity中覆写下面两个方法:

    // 创建菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 0, 0, "关于");
        // menu.add(int groupId, int itemId, int order, CharSequence title)
        menu.add(0, 1, 1, "退出");
        return super.onCreateOptionsMenu(menu);
    }

    // 菜单响应
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
        case 0:
            Toast.makeText(getApplicationContext(), "关于Livingstone的博客", 1).show();
            break;
        case 1:
            this.finish();
            break;
        }
        return true;
    }

此种方法可以创建菜单项Menu,其实还简单一点的方法,我们可以使用MenuInflater{听类名是不是很熟悉,联想一下LayoutInflater}
在res/menu文件夹下,修改main.xml

<item
  android:id="@+id/menu1"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu1"/>
<item
  android:id="@+id/menu2"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu2"/>
<item
  android:id="@+id/menu3"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu3"/>
<item
  android:id="@+id/menu4"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu4"/>

接着修改Activity的方法

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu1:// 在此定义第一个菜单项的响应事件
            break;
        case R.id.menu2:
            break;
        case R.id.menu3:
            break;
        case R.id.menu4:
            showSettings();
            break;
        }
        return super.onOptionsItemSelected(item);
    }
   // 显示系统设置的方法
private void showSettings() { final Intent settingsIntent = new Intent(android.provider.Settings.ACTION_SETTINGS); settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); startActivity(settingsIntent); }

**************************************************************************************************

获取手机分辨率大小

private DisplayMetrics dm = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(dm);
                //获得手机的宽带和高度像素单位为px
                String str = "手机屏幕分辨率为:" + dm.widthPixels +" * "+dm.heightPixels;

 

posted @ 2013-04-11 16:09  Livingstone  阅读(395)  评论(0编辑  收藏  举报