Android仿微信、qq点击右上角加号弹出操作框,先上图,类似于下图这种,点击加号,会弹出一个对话框,如下图:

微信:

自己实现:

接下来,我们来实现此功能:

其实,实现原理就是,点击“+”号,弹出一个PopupWindow。

1、写一个用于展示在ToolBar中的 menu文件,如下:

xmlns:app="http://schemas.android.com/apk/res-auto">

android:id="@+id/btn_msg"

android:icon="@drawable/ic_notifications_none"

android:title="消息"

app:showAsAction="ifRoom" />

2、先添加 “+” ,我的项目里使用的是ToolBar,我给ToolBar添加菜单,在Activity中重写方法onCreateOptionsMenu,如下图:

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu_index_msg, menu);

return super.onCreateOptionsMenu(menu);

}

到这里,“+”号,已经出现了。

3、给menu添加点击事件,并初始化PopupWindow,弹出自定义的PopupWindow,如下:

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.btn_msg:

View popupView = IndexActivity.this.getLayoutInflater().inflate(R.layout.popupwindow, null);

final PopupWindow window = new PopupWindow(popupView, 300, 220);

ListView lv_msg = (ListView) popupView.findViewById(R.id.lv_msg);

MsgAdapter msgAdapter = new MsgAdapter(context, msgBeans);

lv_msg.setAdapter(msgAdapter);

lv_msg.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

if (window.isShowing()) {

window.dismiss();

}

switch (position) {

case 0:

if (myApplication.isOnline()) {

NoticeMainActivity.startActivity(IndexActivity.this);

} else {

Toast.makeText(IndexActivity.this, "离线状态不能使用此功能", Toast.LENGTH_SHORT).show();

}

break;

case 1:

if (myApplication.isOnline()) {

TaskMainActivity.startActivity(IndexActivity.this);

} else {

Toast.makeText(IndexActivity.this, "离线状态不能使用此功能", Toast.LENGTH_SHORT).show();

}

break;

default:

break;

}

}

});

window.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#F8F8F8")));

window.setFocusable(true);

window.setOutsideTouchable(true);

window.update();

//设置显示位置

window.showAsDropDown(msgView, 0, 0);//msgView就是我们menu中的btn_msg

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}

4、在上面3中有一个布局popupwindow,我项目中用到的时显示通知,我在布局中用了ListView来显示内容。这里也可以把布局写成固定布局,根据自己的需求充分发挥。下面贴出来popupwindow布局,如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/lv_msg"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:divider="@null"

android:scrollbars="none" />

5、到这里就实现了我们想要的功能,结果图:

6、通知和任务右边显示的信息条数,是用的shape  xml文件进行约束的,也可以使用BadgeView实现,这里就不过多说明了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

android 加号弹出菜单,Android仿微信、qq点击右上角加号弹出操作框相关推荐

  1. Android自定义弹窗模仿微信,Android仿微信、qq点击右上角加号弹出操作框

    Android仿微信.qq点击右上角加号弹出操作框,先上图,类似于下图这种,点击加号,会弹出一个对话框,如下图: 微信: 自己实现: 接下来,我们来实现此功能: 其实,实现原理就是,点击"+ ...

  2. Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能

    本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...

  3. android点击加号,Android仿微信图片上传带加号且超过最大数隐藏功能

    1.仿照微信空间上传图片,显示图片数量以及超过最大,上传按钮隐藏功能 2.上效果图 3.上代码,主要是Adapter类 /** * Created by zhangyinlei on 2018/3/2 ...

  4. android 仿微信头像裁剪,Android仿微信QQ设置图形头像裁剪功能

    最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...

  5. android标题栏不被顶上去,Android仿微信QQ聊天顶起输入法不顶起标题栏的问题

    在这记录一下输入法弹出的一系列问题,有的输入法弹出就把整个布局弹上去,有的输入法弹出布局不会有变化,有的输入法弹出遮盖输入框等等问题,网上也有很多说加着加那的,但是看一下都不是很完整,解决不了所有问题 ...

  6. android 微信评论功能,Android仿微信朋友圈点击评论自动定位到相关行功能

    最近闲来无事,随便看看各种UI实现的代码 打开你的微信朋友圈,点击评论,你就会发现有一个小细节:文本输入框的高度恰好定位到这条信息的底部位置 这个实现起来其实很简单,咱们就来看看吧 最简单的Recyc ...

  7. android 点击图片动画效果,Android仿微信图片点击全屏效果

    废话不多说,先看下Android图片点击全屏效果: 先是微信的 再是模仿的 先说下实现原理,再一步步分析 这里总共有2个Activity一个就是主页,一个就是显示我们图片效果的页面,参数通过Inten ...

  8. android 查找朋友圈,Android仿微信朋友圈点击评论自动定位到相关行功能

    最近闲来无事,随便看看各种UI实现的代码 打开你的微信朋友圈,点击评论,你就会发现有一个小细节:文本输入框的高度恰好定位到这条信息的底部位置 这个实现起来其实很简单,咱们就来看看吧 最简单的Recyc ...

  9. android 微信评论功能,Android仿微信朋友圈点击评论自动定位到相关行功能.pdf

    Android仿仿微微信信朋朋友友圈圈点点击击评评论论自自动动定定位位到到相相关关行行功功能能 这篇文章主要介绍了android仿微信朋友圈点击评论自动定位到相关行功能的实现,本文图文并茂给大家介绍的 ...

最新文章

  1. domain,DNS,冗余,DNS劫持的大致原理
  2. 第七天学习Java的笔记(IDEA环境配置)
  3. 前端html,css基础总结
  4. oracle 静态监听 端口,侦听动态注册静态注册local_listener参数端口PORT
  5. 【数学建模】评价模型
  6. bodymovin导出没有html5,AE脚本-导出json格式的Web动画工具 Bodymovin v5.7.1 + 使用教程...
  7. python-爬取贴吧的时候表情的处理。
  8. Git使用学习(十四、解决分支合并后产生的冲突)
  9. 艰难的抉择,阿里“小前台、大中台”的解读
  10. java毕业生设计医院设备管理系统计算机源码+系统+mysql+调试部署+lw
  11. c语言1106回文数,Codeforces 1106 简要题解
  12. 给生活来一次傅立叶转换
  13. MySQL中获取当前时间与时间戳
  14. 如何遍历java对象属性
  15. 为何moov头在尾部的mp4可以快速播放、拖动
  16. 【java】序列化与反序列
  17. 基于多目标算法的冷热电联供型综合能源系统运行优化 代码构建了含冷、热、电负荷的冷热电联供型综合能源系统优化调度模型,考虑了燃气轮机、电制冷机
  18. 怎么样才能突破自我,从手工测试成为自动化测试人员
  19. 9款国内外垂直领域的在线作图工具:那些可以替代Visio的应用!【转】
  20. 通信原理——CDMA

热门文章

  1. 太原理工大学的计算机类哪个专业好,2020太原理工大学专业排名(重点专业+双一流学科)...
  2. c++奔跑的火柴人游戏
  3. 手游UGUI性能优化
  4. matlab lmtool,借用许可证 - MATLAB Simulink - MathWorks 中国
  5. 怎样才能让计算机发出钢琴的按键声,教你怎么把钢琴弹出最好的音色
  6. Windows的build版本:chk和fre的区别
  7. rockbox安卓10汉化版_rockbox最新中文版下载
  8. 恒讯科技分析:印度服务器的Tier III和Tier IV数据中心有何区别?
  9. skynet源码解析(三)——启动流程
  10. vagrant简单学习使用