addison_lin 发表于 2012-2-1 11:44:05

android中自己编写一个开始菜单并能设置墙纸的功能

[代码] 代码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;
                            }
                        }
                        
                  });
                }
            }
            
      });

xlcomputer 发表于 2012-2-1 11:48:29

学习了。感觉这对手机编程很有帮助。

rainrow 发表于 2012-4-11 15:24:43

好东东,一定要支持,收藏备用此贴必火,先占位支持了,谢谢分享

ww800822 发表于 2012-5-1 13:01:59

学习了。感觉这对手机编程很有帮助

BreezeU 发表于 2012-7-3 17:08:52

有个疑问,本分类版块,每个主题的第二个回复者,发布的言语都是一样的,是不是他在灌水?
页: [1]
查看完整版本: android中自己编写一个开始菜单并能设置墙纸的功能