android系统给我提供的菜单不尽人意,大多数情况下我们都是根据需求,重写系统的菜单,达到想要的效果,下面就用PopupWindow两种方式重写系统菜单效果。
package com.jacp.app;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
public class PopupWindowActivity extends Activity implements OnClickListener {
private PopupWindow mLeftMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 注册按钮事件
findViewById(R.id.left).setOnClickListener(this);
findViewById(R.id.right).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.left:
showLeftMenu();
break;
case R.id.right:
startActivity(new Intent(this, PopupWindowSecondActivity.class));
break;
}
}
/**
* 显示菜单
* @return 如果菜单显示则返回true,否则返回false
*/
private boolean showLeftMenu() {
if (hideLeftMenu())
{
return false;
}
LinearLayout leftLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.menu_list, null);