android--------Popupwindow的使用
PopupWindow在Android.widget包下,项目中经常会使用到PopupWindow做菜单选项, PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。
效果图:
MainActivity.java
- public class MainActivity extends Activityimplements OnClickListener {
- private PopupWindowm PopWindow;
- private View parentView;
- private Context context;
- ImageView mImageViewBar;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.activity_main);
- context = this;
- initView();
- }
- private void initView() {
- // TODOAuto-generated method stub
- parentView =getLayoutInflater().inflate(R.layout.activity_main,null);
- mImageViewBar =(ImageView) findViewById(R.id.menu);
- mImageViewBar.setOnClickListener(this);
- showPopupWindow();
- }
- private void showPopupWindow() {
- LayoutInflater inflater = (LayoutInflater)context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View contentView =inflater.inflate(R.layout.popuplayout,null);
- mPopWindow = newPopupWindow(contentView);
- mPopWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
- mPopWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
- mPopWindow = newPopupWindow();
- // 设置SelectPicPopupWindow的View
- mPopWindow.setContentView(contentView);
- // 设置SelectPicPopupWindow弹出窗体的宽
- mPopWindow.setWidth(LayoutParams.WRAP_CONTENT);
- // 设置SelectPicPopupWindow弹出窗体的高
- mPopWindow.setHeight(LayoutParams.WRAP_CONTENT);
- // 设置SelectPicPopupWindow弹出窗体可点击
- mPopWindow.setFocusable(true);
- mPopWindow.setOutsideTouchable(true);
- // 刷新状态
- mPopWindow.update();
- // 实例化一个ColorDrawable颜色为半透明
- ColorDrawable dw = new ColorDrawable(0000000000);
- // 点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener,设置其他控件变化等操作
- mPopWindow.setBackgroundDrawable(dw);
- contentView.findViewById(R.id.memu1).setOnClickListener(this);
- contentView.findViewById(R.id.memu2).setOnClickListener(this);
- contentView.findViewById(R.id.memu3).setOnClickListener(this);
- }
- @Override
- public void onClick(View v) {
- int id =v.getId();
- switch (id) {
- case R.id.menu:
- mPopWindow.showAsDropDown(mImageViewBar);
- break;
- case R.id.memu1: {
- Toast.makeText(context,"消息", Toast.LENGTH_SHORT).show();
- mPopWindow.dismiss();
- }
- break;
- case R.id.memu2: {
- Toast.makeText(context,"收藏", Toast.LENGTH_SHORT).show();
- mPopWindow.dismiss();
- }
- break;
- case R.id.memu3: {
- Toast.makeText(context,"首页", Toast.LENGTH_SHORT).show();
- mPopWindow.dismiss();
- }
- break;
- }
- }
- @Override
- protected void onDestroy() {
- // TODOAuto-generated method stub
- super.onDestroy();
- mPopWindow.dismiss();
- }
- }
android--------Popupwindow的使用的更多相关文章
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- Android PopupWindow的使用和分析
Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activi ...
- Android PopupWindow的使用技巧(转)
Android PopupWindow的使用技巧 PopupWindow是Android上自定义弹出窗口,使用起来很方便. PopupWindow的构造函数为 public PopupWindow(V ...
- Android popupwindow使用心得(一)
最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的.所以把使用心得总结下,废话不多说,直接上代码. public class MainActivity extends Activ ...
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题, ...
- Android -- PopupWindow(其中嵌套ListView 可以被点击)
1. 效果图
- android PopupWindow使用实例
注:点空白或菜单外隐藏popupwindow菜单: 但是,若点击有点击事件的组件则要再写代码手动隐藏: @Override public boolean onTouchEvent(MotionEven ...
- Android - PopupWindow
PopupWindow就是一个可以显示在当前界面上的浮动容器,它可以用来显示任意一个View,同时还可以指定显示的位置. 下面写一个显示下拉的例子: PopupWindow mpopupWindow; ...
- Android PopupWindow使用之地区、学校选择二级联动
最近在做一个社交类APP时,希望用户在注册时根据地区来选择自己所在的学校,由于用户手动输入学校,可能会出现各种问题,不利于后面对用户信息的统计.于是决定在客户端做好设置,用户只要根据地区来选择就好.第 ...
- android PopupWindow实现从底部弹出或滑出选择菜单或窗口
本实例弹出窗口主要是继承PopupWindow类来实现的弹出窗体,布局可以根据自己定义设计.弹出效果主要使用了translate和alpha样式实现,具体实习如下: 第一步:设计弹出窗口xml: &l ...
随机推荐
- 数据仓库基础(十)Informatica 组件1
本文转载自:http://www.cnblogs.com/evencao/p/informatica.html Informatica主要的组件: Source Qualifier 从数据源读取数据 ...
- linux基础命令---tr
tr 删除或者更改文件中的字符串,这个指令一般需要两个字符集. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 ...
- 在thinkphp里面执行原生的sql语句
在thinkphp里面执行原生的sql语句 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $Model = D(); 或者 $Model = M ...
- 浅谈CORS
浅谈CORS CORS全称"跨站资源共享"(Cross-Origin Resource Sharing),它允许浏览器克服浏览器同源策略向跨域服务器发出请求. 同源策略 概念 说到 ...
- JavaScript 实现全选 / 反选功能
JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...
- 20145302张薇《课程设计》数据恢复——WinHex实践
20145302张薇<课程设计>数据恢复--WinHex实践 实践内容 使用WinHex破损一个U盘 使用WinHex通过DBR备份数据来修复已损坏U盘 实践详细步骤 1.准备一个文件格式 ...
- 20145208 蔡野《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
20145208 蔡野<网络对抗>Exp3 Advanced 恶意代码伪装技术实践 木马化正常软件 思路: 在正常软件包中将原本的程序主文件(平时打开程序用的exe文件)改成dll后缀(或 ...
- CRT中的时间(time_t和tm)(转载)
转载:http://blog.csdn.net/bokee/article/details/5330682 首先介绍基本的时间概念. 时间一般分为两种,一种是本地时间(Local Time),一种是协 ...
- sbt介绍与构建Scala项目
一.sbt简介 sbt是类似ANT.MAVEN的构建工具,全称为Simple build tool,是Scala事实上的标准构建工具. 主要特性: 原生支持编译Scala代码和与诸多Scala测试框架 ...
- Thinking in React 观后感
原文地址:Thinking in React 今天在翻阅 React 文档,看到一篇名为「Thinking in React」的文章觉得写的很好.文章介绍了如何使用 React 构建一个应用,并不是手 ...