Android仿ucweb的菜单效果

Android仿ucweb的菜单效果

这里有几个要点
1,主界面有个listview+下面一个toolbar
2,按menu键的时候弹出一个dialog

问题是,弹出的dialog如何显示成gridview的形式呢,你说对了,就是用一个gridview来显示出来。
具体的思路就是如此了,首先主界面运用一个RelativeLayout来布局相对的位置,上面是个ListView,下面是个Gridview,当然,你也可以用其他的方式来布局先面的toolbar。

新建一个项目,我的MainActivity名字是UcwebDemoActivity,代码如下:

public class UcwebDemoActivity extends Activity {        AlertDialog menuDialog;        ListView listView;        GridView menuGrid, toolbarGrid;        View menuView;        private boolean isMore = false;        private final int ITEM_SEARCH = 0;        private final int ITEM_FILE_MANAGER = 1;        private final int ITEM_DOWN_MANAGER = 2;        private final int ITEM_FULLSCREEN = 3;        private final int ITEM_MORE = 11;           private final int TOOLBAR_ITEM_PAGEHOME = 0;        private final int TOOLBAR_ITEM_BACK = 1;        private final int TOOLBAR_ITEM_FORWARD = 2;        private final int TOOLBAR_ITEM_NEW = 3;        private final int TOOLBAR_ITEM_MENU = 4;        int[] menu_image_array = { R.drawable.menu_search,                R.drawable.menu_filemanager, R.drawable.menu_downmanager,                R.drawable.menu_fullscreen, R.drawable.menu_inputurl,                R.drawable.menu_bookmark, R.drawable.menu_bookmark_sync_import,                R.drawable.menu_sharepage, R.drawable.menu_quit,                R.drawable.menu_nightmode, R.drawable.menu_refresh,                R.drawable.menu_more };        String[] menu_name_array = { "Search""Filemanager""Download",                "Fullscreen""Inputurl""Bookmark""Bookmark_sync""Share",                "Quit""NightModeʽ""Refresh""More" };        int[] menu_image_array2 = { R.drawable.menu_auto_landscape,                R.drawable.menu_penselectmodel, R.drawable.menu_page_attr,                R.drawable.menu_novel_mode, R.drawable.menu_page_updown,                R.drawable.menu_checkupdate, R.drawable.menu_checknet,                R.drawable.menu_refreshtimer, R.drawable.menu_syssettings,                R.drawable.menu_help, R.drawable.menu_about, R.drawable.menu_return };        String[] menu_name_array2 = { "Landscape""SelectModelʽ""Pageʽ",                "Modeʽ""Updown""Update""CheckNet""Refreshtimer""Setting",                "Help""About""Return" };           int[] menu_toolbar_image_array = { R.drawable.controlbar_homepage,                R.drawable.controlbar_backward_enable,                R.drawable.controlbar_forward_enable, R.drawable.controlbar_window,                R.drawable.controlbar_showtype_list };        String[] menu_toolbar_name_array = { "Home""Back""Forward""Window",                "List" };           @Override       public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.main);            menuView = View.inflate(this, R.layout.gridview_menu, null);            menuDialog = new AlertDialog.Builder(this).create();            menuDialog.setView(menuView);            menuDialog.setOnKeyListener(new OnKeyListener() {                public boolean onKey(DialogInterface dialog, int keyCode,                        KeyEvent event) {                    if (keyCode == KeyEvent.KEYCODE_MENU)// �����                        dialog.dismiss();                    return false;                }            });               menuGrid = (GridView) menuView.findViewById(R.id.gridview);            menuGrid.setAdapter(getMenuAdapter(menu_name_array, menu_image_array));            menuGrid.setOnItemClickListener(new OnItemClickListener() {                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                        long arg3) {                    switch (arg2) {                    case ITEM_SEARCH:                           break;                    case ITEM_FILE_MANAGER:                           break;                    case ITEM_DOWN_MANAGER:                           break;                    case ITEM_FULLSCREEN:// ȫ��                           break;                    case ITEM_MORE:                        if (isMore) {                            menuGrid.setAdapter(getMenuAdapter(menu_name_array2,                                    menu_image_array2));                            isMore = false;                        } else {                            menuGrid.setAdapter(getMenuAdapter(menu_name_array,                                    menu_image_array));                            isMore = true;                        }                        menuGrid.invalidate();                        menuGrid.setSelection(ITEM_MORE);                        break;                    }                   }            });               toolbarGrid = (GridView) findViewById(R.id.GridView_toolbar);            toolbarGrid.setBackgroundResource(R.drawable.channelgallery_bg);            toolbarGrid.setNumColumns(5);            toolbarGrid.setGravity(Gravity.CENTER);            toolbarGrid.setVerticalSpacing(10);            toolbarGrid.setHorizontalSpacing(10);            toolbarGrid.setAdapter(getMenuAdapter(menu_toolbar_name_array,                    menu_toolbar_image_array));            toolbarGrid.setOnItemClickListener(new OnItemClickListener() {                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,                        long arg3) {                    Toast.makeText(UcwebDemoActivity.this,                            menu_toolbar_name_array[arg2], Toast.LENGTH_SHORT)                            .show();                    switch (arg2) {                    case TOOLBAR_ITEM_PAGEHOME:                        break;                    case TOOLBAR_ITEM_BACK:                           break;                    case TOOLBAR_ITEM_FORWARD:                           break;                    case TOOLBAR_ITEM_NEW:                           break;                    case TOOLBAR_ITEM_MENU:                        menuDialog.show();                        break;                    }                }            });               listView = (ListView) findViewById(R.id.ListView_catalog);            listView.setAdapter(getMenuAdapter(menu_name_array2, menu_image_array2));           }           @Override       public boolean onCreateOptionsMenu(Menu menu) {            menu.add("menu");            return super.onCreateOptionsMenu(menu);        }           @Override       public boolean onMenuOpened(int featureId, Menu menu) {            if (menuDialog == null) {                menuDialog = new AlertDialog.Builder(this).setView(menuView).show();            } else {                menuDialog.show();            }            return false;        }           private SimpleAdapter getMenuAdapter(String[] menuNameArray,                int[] imageResourceArray) {            ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();            for (int i = 0; i < menuNameArray.length; i++) {                HashMap<String, Object> map = new HashMap<String, Object>();                map.put("itemImage", imageResourceArray[i]);                map.put("itemText", menuNameArray[i]);                data.add(map);            }            SimpleAdapter simperAdapter = new SimpleAdapter(this, data,                    R.layout.item_menu, new String[] { "itemImage""itemText" },                    new int[] { R.id.item_image, R.id.item_text });            return simperAdapter;        }    }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/psfdz.html