修改android4.4图库系列二——自定义菜单
16lz
2021-01-25
自定义菜单,主要的思路就是利用PopupWindow来模仿菜单的效果。效果图如下:
具体代码如下:
1、关键代码
ArrayAdapter listAdatper = new ArrayAdapter(getApplicationContext(), R.layout.item_menu_list, R.id.menuText, new String[]{"删除","设置"}); // 加载popupWindow的布局文件 View popupWindowView = LayoutInflater.from(getApplicationContext()) .inflate(R.layout.view_popwindow, null); final ListView menuList = (ListView)popupWindowView.findViewById(R.id.menuList); menuList.setAdapter(listAdatper); menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {switch (position) {case 0:// 删除Log.e(TAG, "000000000");break;case 1:// 设置Log.e(TAG, "111111111");break;default:Log.e(TAG, "default");break;}}}); final PopupWindow popupWindow = new PopupWindow(popupWindowView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); mainMenu.setOnClickListener(new OnClickListener() {@SuppressWarnings("deprecation")@Overridepublic void onClick(View v) {// 如果不在弹出之前加上这条语句,ListView的item将无法点击 popupWindow.setFocusable(true);// 防止弹出菜单获取焦点之后,点击activity的其他组件没有响应popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.showAsDropDown(mainMenu); }});
2、xml文件代码
1)item_menu_list.xml
<?xml version="1.0" encoding="utf-8"?>
2)view_popwindow.xml
<?xml version="1.0" encoding="utf-8"?>
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)JNI(实现自己的JNI_OnLoad函数)
- Android(安卓)代码中对不同国家支持的信道的设置
- MyEclipse本地搭建Android环境
- Android系统横竖屏切换时候Activity的生命周期