Android中PopupWindow用法
参考资料链接:http://developer.android.com/reference/android/widget/PopupWindow.html
在Android中有很多级别的Window,不同级别的Window按照z-index方向分布。
1、创建PopouWindow及相关参数设置
//创建一个包含自定义view的PopupWindow
private PopupWindow makePopupWindow(Context cx) {
PopupWindow window;
window = new PopupWindow(cx);
TextView contentView = new TextView(cx);
contentView.setGravity(Gravity.CENTER);
final Resources res = cx.getResources();
// contentView.setBackgroundColor(R.color.page_window_bgcolor);
// window.setBackgroundDrawable(new
// ColorDrawable(res.getColor(R.color.page_window_bgcolor)));
contentView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//设置PopupWindow显示和隐藏时的动画
window.setAnimationStyle(R.style.AnimationFade);
//设置PopupWindow的大小(宽度和高度)
window.setWidth(res.getDimensionPixelSize(R.dimen.page_window_width));
window.setHeight(res.getDimensionPixelSize(R.dimen.page_window_height));
//设置PopupWindow的内容view
window.setContentView(contentView);
//设置PopupWindow外部区域是否可触摸
window.setOutsideTouchable(true);
return window;
}
2、PopupWindow显示和隐藏的动画设置
XML配置代码:
<!-- PopupWindow窗口淡入淡出动画 -->
<style name="AnimationFade">
<item name="android:windowEnterAnimation">@anim/fade_in</item>
<item name="android:windowExitAnimation">@anim/fade_out</item>
</style>
JAVA代码:
window.setAnimationStyle(R.style.AnimationFade);
3、PopupWindow的焦点设置
window.setFocusable(true); //设置PopupWindow可获得焦点
window.setTouchable(true); //设置PopupWindow可触摸
window.setOutsideTouchable(true); //设置非PopupWindow区域可触摸
4、PopupWindow的显示及显示位置设置
window.showAtLocation();
window.showAsDropDown();
5、PopupWindow的隐藏
final PopupWindow window = mPageStatWin;
if(null != window && window.isShowing()) {
win.dismiss();
}
6、PopupWindow的显示及位置设置
window.showAtLocation(parent, Gravity.RIGHT | Gravity.BOTTOM, 10,10);
第一个参数指定PopupWindow的锚点view,即依附在哪个view上。
第二个参数指定起始点为parent的右下角,第三个参数设置以parent的右下角为原点,向左、上各偏移10像素。
//将PopupWindow作为anchor的下拉窗口显示。即在anchor的左下角显示
window.showAsDropDown(anchor);
//xoff,yoff基于anchor的左下角进行偏移。
window.showAsDropDown(anchor, xoff, yoff);
如果没有充足的空间显示PopupWindow,那么PopupWindow的左下角将位于anchor的左上角来显示。
相关例子代码下载链接:http://www.apkbus.com/android-130032-1-1.html
http://www.apkbus.com/android-130042-1-1.html
参考链接:http://www.apkbus.com/forum.php?mod=viewthread&tid=141944
Android中PopupWindow用法的更多相关文章
- Android 中PopupWindow使用 (转)
参考学习后遇到问题: 要引用:有好几个,可以用错误提示解决: import android.widget.PopupWindow; import android.widget.Toast; Activ ...
- ZT onActivityResult在android中的用法
onActivityResult在android中的用法 举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就 ...
- Android中Popupwindow和Dialog的区别
Android中的对话框有两种:PopupWindow和AlertDialog.它们都可以实现弹窗功能,但是他们之间有一些差别,下面总结了一点. (1)Popupwindow在显示之前一定要设置宽高, ...
- android中handler用法总结
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...
- Java中的Timer和TimerTask在Android中的用法(转)
转自:http://blog.csdn.net/zuolongsnail/article/details/8168689 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI ...
- Android中SurfaceView用法示例
SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主 ...
- Android中RecyclerView用法,一步一步教你如何使用RecyclerView以及带你走过编码中可能会出现的坑~
首先,要明白RecyclerView是做什么的?其次是为什么要用RecyclerView?这里牵扯到RecyclerView和ListView的区别,这里不废话,大家自行百度即可! 以下示例我用的An ...
- Android中PopupWindow中有输入框时无法弹出输入法的解决办法
PopupWindow window=new PopupWindow(view, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); //必须让p ...
- android开发学习 ------- 枚举类型在Android中的用法
一般上为了简化代码,重用代码,设置标志位来表示不同的流程,这个标志位可以使用枚举类型来表示: 1:定义 public FbManner fbManer = FbManner.EMAIL; //给一个默 ...
随机推荐
- asp(utf-8) set cookie 用 javascript 读cookie发现一个问题
asp: <%setCookie("user_id","test")%> //传一个cookie ,名: user_id 值:test java ...
- getComponent()与getSource()
Component[] items = 父控件.getComponents(); 获取父控件里的控件,返回Component类的数组.如panel中的许多buttone.getSource() 获取发 ...
- 函数和常用模块【day06】:pickle模块(十二)
本节内容 1.dumps序列化和loads反序列化 2.dump序列化和load反序列化 3.序列函数 1.dumps序列化和loads反序列化 dumps()序列化 1 2 3 4 5 6 7 8 ...
- Python基础【day02】:字符串(四)
在Python中字符串本身有带很多操作,字符串的特性,不可以被修改 0.字符串常用功能汇总 1.字符串的定义 #定义空字符串>>> name=''#定义非空字符串 >>& ...
- javascript 迭代与递归
<script type="text/javascript"> // //原生js // window.onload = function(){ // var btn ...
- jQuery EasyUI Datagrid性能优化专题
jQuery EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能都望而却步了.本博客以后会带着分析Data ...
- spring boot 2.0.3+spring cloud (Finchley)1、搭建服务注册和发现组件Eureka 以及构建高可用Eureka Server集群
一 .搭建Eureka 编写Eureka Server 由于有多个spring boot项目,采用maven多module的结构,项目结构如下: 新建一个maven主工程,在主maven的pom文件中 ...
- vue中$mount与el区别
vue中的$mount和el两者在使用中没有什么区别,都是将实例化后的vue挂载到指定的DOM元素中 用法: 如果在实例化vue时指定el,则该vue将会渲染在el对应的DOM中 反之 没有指定el, ...
- JavaScript之函数存储[摘]
引用文献:js忍者秘籍 var store = {//demo:函数存储----存储一组独立的函数 nextId:1, cache:{}, add:function(fn){ if(!fn.id){ ...
- C#中富文本编辑器Simditor带图片上传的全部过程(MVC架构的项目)
描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看. 注:此项目是MVC架构的. 1.引用文件 项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示 ...