android中自己编写一个开始菜单并能设置墙纸的功能
1. [代码][Java]代码
list = new ArrayList<HashMap<String,String>>();
HashMap<String,String> map = new HashMap<String,String>();
map.put("menuItemName", "文件");
list.add(map);
HashMap<String,String> map2 = new HashMap<String,String>();
map2.put("menuItemName", "设置墙纸1");
list.add(map2);
HashMap<String,String> map3 = new HashMap<String,String>();
map3.put("menuItemName", "设置墙纸2");
list.add(map3);
HashMap<String,String> map4 = new HashMap<String,String>();
map4.put("menuItemName", "设置快捷1");
list.add(map4);
HashMap<String,String> map5 = new HashMap<String,String>();
map5.put("menuItemName", "设置快捷2");
list.add(map5);
HashMap<String,String> map6 = new HashMap<String,String>();
map6.put("menuItemName", "设置快捷3");
list.add(map6);
HashMap<String,String> map7 = new HashMap<String,String>();
map7.put("menuItemName", "退出");
list.add(map7);
myButton = (Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(state == 1) {
state = 0;
pop.dismiss();
}
else if(state == 0) {
// 弹出自定义的菜单
layout = getLayoutInflater().inflate(R.layout.menu_layout, null);
menulist = (ListView)layout.findViewById(R.id.menulist);
SimpleAdapter listAdapter = new SimpleAdapter(Testflag.this,list,R.layout.menu_item,new String[]{"menuItemName"},new int[]{R.id.menuitem});
menulist.setAdapter(listAdapter);
pop = new PopupWindow(layout, myButton.getWidth(),getWindowManager().getDefaultDisplay().getHeight()/3+40);
pop.update();
//pop.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
pop.setTouchable(true);
pop.setOutsideTouchable(true);
pop.setFocusable(true);
pop.showAtLocation(layout, (Gravity.BOTTOM-myButton.getHeight())|Gravity.LEFT, 0, 2*myButton.getHeight());
state = 1;
pop.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_OUTSIDE) {
pop.dismiss();
return true;
}
return false;
}
});
menulist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
switch(arg2) {
case 0:
Toast.makeText(getApplicationContext(), "显示所有文件", Toast.LENGTH_SHORT).show();
pop.dismiss();
break;
case 1:
pop.dismiss();
Bitmap wall01 = getWallPaper01();
setWallPaper(wall01);
break;
case 2:
pop.dismiss();
Bitmap wall02 = getWallPaper02();
setWallPaper(wall02);
break;
case 3:
Toast.makeText(getApplicationContext(), "设置快捷1", Toast.LENGTH_SHORT).show();
pop.dismiss();
break;
case 4:
Toast.makeText(getApplicationContext(), "设置快捷2", Toast.LENGTH_SHORT).show();
pop.dismiss();
break;
case 5:
Toast.makeText(getApplicationContext(), "设置快捷3", Toast.LENGTH_SHORT).show();
pop.dismiss();
break;
case 6:
Toast.makeText(getApplicationContext(), "退出", Toast.LENGTH_SHORT).show();
pop.dismiss();
break;
}
}
});
}
}
});