android菜单键变成箭头,Android:DropPopMenu — 显示位置跟随操作按钮显示的带箭头的弹出菜单(转载,写的很好)...
转载请注明出处:http://blog.csdn.net/hmyang314/article/details/70920295DropPopMenu
显示位置跟随操作按钮显示的带箭头的弹出菜单
GitHub:https://github.com/HMY314/DropPopMenu
一,介绍
本项目是对带箭头的下拉弹出菜单进行了封装,使用简单,同时有如下特点:
1、可以动态修改菜单的背景;
2、弹出位置是依赖于操作按钮的位置显示,处理了按钮在边界位置引起的菜单显示错位问题;
3、菜单宽度以文字的最大长度作为宽度动态计算了;
4、菜单默认弹窗方向是在操作按钮下面,当操作按钮在屏幕底部时,或者菜单的
高度不能完全显示时,菜单是显示在操作按钮上面的
二,使用
1、默认风格
View view = findViewById......
mDropPopMenu = new DropPopMenu(this);
mDropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int position, long id, MenuItem menuItem) {
Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show();
}
});
mDropPopMenu.setMenuList(getMenuList());
mDropPopMenu.show(view);
private ListgetMenuList() {
Listlist = new ArrayList<>();
list.add(new MenuItem(1, "选项"));
list.add(new MenuItem(2, "选项选项选项"));
list.add(new MenuItem(3, "选项选项选项选项"));
list.add(new MenuItem(4, "选项选项"));
list.add(new MenuItem(5, "选项选项选项"));
list.add(new MenuItem(5, "选项选项选项选项"));
return list;
}
2、改变弹窗背景、文字颜色
public void onClickPopWhite(View view) {
DropPopMenu dropPopMenu = new DropPopMenu(this);
dropPopMenu.setTriangleIndicatorViewColor(Color.WHITE);
dropPopMenu.setBackgroundResource(R.drawable.bg_drop_pop_menu_white_shap);
dropPopMenu.setItemTextColor(Color.BLACK);
dropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int position, long id, MenuItem menuItem) {
Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show();
}
});
dropPopMenu.setMenuList(getMenuList());
dropPopMenu.show(view);
}
3、显示图标
public void onClickPopIcon(View view) {
DropPopMenu dropPopMenu = new DropPopMenu(this);
dropPopMenu.setTriangleIndicatorViewColor(Color.WHITE);
dropPopMenu.setBackgroundResource(R.drawable.bg_drop_pop_menu_white_shap);
dropPopMenu.setItemTextColor(Color.BLACK);
dropPopMenu.setIsShowIcon(true);
dropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view, int position, long id, MenuItem menuItem) {
Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show();
}
});
dropPopMenu.setMenuList(getIconMenuList());
dropPopMenu.show(view);
}
private ListgetIconMenuList() {
Listlist = new ArrayList<>();
list.add(new MenuItem(R.drawable.ic_honor_level1, 1, "选项1"));
list.add(new MenuItem(R.drawable.ic_honor_level2, 2, "选项2"));
list.add(new MenuItem(R.drawable.ic_honor_level3, 3, "选项3"));
return list;
}
android菜单键变成箭头,Android:DropPopMenu — 显示位置跟随操作按钮显示的带箭头的弹出菜单(转载,写的很好)...相关推荐
- Android自定义弹出菜单+动画实现
看到网上一个Demo里面弹出菜单的动画效果很好看,自己就利用工作空余时间也写了一下.具体实现如下: 1 自定义一个显示Icon的ImageView,主要用来判断该ImageView是否需要放在父布局底 ...
- android菜单键选择图标,Android Design
开发者文档 Action Bar "操作栏"对于 Android 应用来说是最重要的设计元素.它通常在应用运行的所有时间都待在屏幕顶部. 操作栏的主要目的是: 突出重要的操作 (例 ...
- 教你如何创建类似QQ的android弹出菜单
热心推荐: Android ListView两种长按弹出菜单方式 popupwindow实现弹出菜单效果 Android人才招聘--最新招聘 大家可能看到 android 的自带的系统菜单比较难看, ...
- [Android] 底部菜单布局+PopupWindows实现弹出菜单功能(初级篇)
这篇文章主要是自己研究如何对底部菜单进行布局,并简单的实现点击不同"按钮"实现图片切换和背景切换的功能,最后通过PopupWindows实现弹出菜单,点击不同按钮能实现不同 ...
- Android DialogFragment实现底部弹出菜单效果
底部弹出式菜单, 可以使用PopupWindow来做,也可以用自定义View来做.当然这里采用DialogFragment来做. DialogFragment是3.0之后引入的,使用DialogFra ...
- Android 仿微信右上角点击加号弹出菜单
今天在做仿微信点击右上角加号弹出菜单出现了一点问题,故记录下来 需要也能对你有用 先来看效果图: 欧克,上面的实现效果主要时使用PopupWindow实现的,其中有趣的知识点是1.点击加号按钮弹出菜单 ...
- android中点击加号动画,android animation之scale 缩放(仿微信加号弹出菜单的动画效果)...
仿微信 +号 处理事件:弹出菜单的动画效果--缩放(反义词) 放大效果(缩小的代码只需将fromXScale和toXScale,:fromYScale和toYScale变换) android:inte ...
- 【转载】Android之用PopupWindow实现弹出菜单
在使用UC-WebBrowser时,你会发现它的弹出菜单跟系统自带的菜单不一样.它实现更多菜单选项的显示和分栏.其实,它的本身是PopupWindow或者是AlertDialog对话框,在里面添加两个 ...
- Android开发——菜单(Menu)-——上下文菜单(ContextMenu)、 弹出菜单(PopupMenu)
上下文菜单(ContextMenu) 长按某个view不放,就会在屏幕中间弹出ContextMenu. 一个Activity中间只可能有一个OptionMenu,但一个Activity中间有多个Vie ...
最新文章
- Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加日期数据标签
- caffe中mnist数据集的运行
- 剔除异常值栅格计算器_基于数据流的异常检测: Random Cut Forest
- 苏宁大数据怎么运营_数据驱动经营 苏宁大数据用户标签入选2019TOP100全球软件案例...
- 【项目管理】合同和采购
- Linux单用户下提示权限不够,Linux_/dev/null 权限不足,/dev/null文件设备的权限不对, - phpStudy...
- c语言第八章实验题答案,第八章实验报告
- ylbtech_dbs_article_五大主流数据库模型
- 【Vue】样式穿透 ::v-deep的具体使用
- centos系统安全设置
- TypeError: cannot unpack non-iterable int object查找指定文件夹下指定文件类型的数量
- Eclipse问题提示
- FS4100 锂电充电管理IC输入12V给8.4V充电IC
- 明光杂感之四:足球与情境觉知(上)
- android 闪屏动态界面,Android 实现闪屏
- php composer.phar install,解决composer.phar安装问题
- python坦克大战游戏_python实现简单坦克大战
- matlab中二维散点图,MATLAB实例:二维散点图
- 1.整理华子面经--1
- python调用海康威视工业相机SDK实现图片采集
热门文章
- centos限制IP登录
- springmvc事务管理详解
- 技术前沿与经典文章25:电磁波能量谜团:能量竟然不连续?
- 使用pywinauto获取微信群成员昵称
- 中国分离膜行业应用范围大,预计“十四五”期间中国膜技术产业仍将保持快速增长,市场前景广阔[图]
- 无麸质产品行业调研报告 - 市场现状分析与发展前景预测
- PS(photoshop)抠图(切图)必备快捷键及要
- c语言实训报告总结300字,社会实践报告或者心得300字.doc
- 【蓝桥杯集训100题】scratch摘苹果 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第21题
- ShowModal 关闭问题