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 ...
随机推荐
- 2016NOI冬令营day0
上午写了一道题. 中午收拾好东西后兴高采烈地坐老司机开的出租车来到了美丽的南山中学!!!:) 志愿者太多了,弄得我们有点不好意思......:) 来到寝室,看到了传闻中的被子&空(kong4) ...
- SQL学习之SqlMap SQL注入
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了. 今天把我一 ...
- bzoj1635 / P2879 [USACO07JAN]区间统计Tallest Cow
P2879 [USACO07JAN]区间统计Tallest Cow 差分 对于每个限制$(l,r)$,我们建立一个差分数组$a[i]$ 使$a[l+1]--,a[r]++$,表示$(l,r)$区间内的 ...
- POJO/VO/DTO等对象模型
JavaBean 要想成为JavaBean,需要满足以下条件: 1,提供一个默认的无参构造函数. 2,需要被序列化并且实现了Serializable接口. 3,可能有一系列可读写属性伴随"g ...
- csharp编写界面,opencv编写类库,解决 Pinvoke过程中的参数传递和平台调用问题
使用csharp 编写winform程序,不仅速度快,而且容易界面美化并找到其他类库的支持:而使用 opencv编写图形图像处理程序,是目前比较流行,而且高效的一种方法.如果需要将两者结合,需 ...
- 20145127《java程序设计》第五周学习总结
教材学习内容总结 第八章 异常处理 1.try catch java中所有错误会被打包成对象,可以进行尝试捕捉代表错误的对象进行处理. Import java.until.Scanner; Publi ...
- 20145329 《网络对抗技术》Web基础
实践目标 Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前端javascipt 理解JavaScript的基本 ...
- React 回忆录(一)为什么使用 React?
Hi 各位,欢迎来到 React 回忆录!
- git下载速度太慢【学习笔记】
使用了sshFQ的伙伴添加这个配置下载速度有极大的提升. git config --global http.proxy 'socks5://127.0.0.1:1080'
- 我在linux中使用的vundle 和 vimrc配置
set nocompatible filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc() Plugin 'gmarik/vundle' ...