在Android中有很多级别的Window,不同级别的Window按照z-index方向分布。下面看看Android控件(view)PopupWindow的用法(位置、动画、焦点)。

1、创建PopouWindow及相关参数设置

//创建一个包含自定义view的PopupWindowprivate 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的左上角来显示。

更多相关文章

  1. android音乐文件乱码显示问题解决
  2. Android(安卓)Animation
  3. SAP BSP, Java Web Project,Android和微信小程序的初始页面设置
  4. Android开发:布局分区域设置不同背景色
  5. [Android] 开发资料收集:动画
  6. android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置
  7. Android环境变量的设置(详细图解版)
  8. Android转场动画windowAnimation和ActivityAnimation的区别
  9. 开发Android平板电脑程序不能全屏显示问题的解决

随机推荐

  1. Android(安卓)耗时代码(ANR)的查找检测和
  2. android JNI c/c++调用java 无需新建虚拟
  3. 开发环境的搭建(Eclipse SDK jdk ADT)
  4. android 模拟器AVD方向键无法使用的解决
  5. Android官方命令深入分析之etc1tool
  6. 在Android中加入抓屏软件fbdump
  7. Android中刷新界面的二种方法
  8. View.VISIBLE、INVISIBLE、GONE的区别(你
  9. [置顶] 使用ContentProvider共享数据
  10. TraceView工具如何使用