Android PopupWindow 的使用

弹出窗口(PopupWindow)用来显示一个的任意的视图(view),通常浮动在当前Acitivty之上。

构造方法1:
   
    public PopupWindow(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.popupWindowStyle);
    }
   //defStyle 窗口样式
    public PopupWindow(Context context, AttributeSet attrs, int defStyle)

构造方法2:
   
 public PopupWindow(View contentView, int width, int height, boolean focusable)

常用的方法:

    public void setBackgroundDrawable(Drawable background) ——改变弹出窗口的背景,当然也可以设置为NULL。
   public Drawable getBackground() ——获得弹出窗口背景。
   public void setAnimationStyle(int animationStyle)——改变窗口显示与消失时的动态样式
注:如果窗口已经显示过,更改此值只能在下一次显示时起作用,或者调用update()方法。
   public int getAnimationStyle()——获得弹出窗口显示与消失时的动态样式the animation style
   public void setContentView(View contentView)——设置弹出窗口包含的视图
   public View getContentView() —— 获得弹出窗口包含的视图
   public boolean isFocusable() ——返回当前弹出窗口是否可获得焦点
   public void setFocusable(boolean focusable) ——设置弹出窗口是否可获得焦点,默认false
   public boolean isShowing()——判断当前窗口是否已显示
   public void showAtLocation(View parent, int gravity, int x, int y)——指定弹出窗口显示的位置。
   public void update()——更新弹出窗口的状态, 一些状态:
  setClippingEnabled(boolean)
  setFocusable(boolean)
  setIgnoreCheekPress()
  setTouchable(boolean)
  setAnimationStyle(int)
  setInputMethodMode(int)
  setAnimationStyle(int)


  重点看下:
 
 public void showAtLocation(View parent, int gravity, int x, int y)

实例:
效果如下,点击注册按钮弹出,图2的窗口。
Android PopupWindow 的使用_第1张图片


Android PopupWindow 的使用_第2张图片

关键代码:
LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View menuView = (View)mLayoutInflater.inflate(R.layout.alert_dialog_menu_layout_new, null, true);//弹出窗口包含的视图
popupWindow = new PopupWindow(menuView, LayoutParams.FILL_PARENT,238, true);//创建弹出窗口,指定大小  popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.btn_style_alert_dialog_background));//设置弹出窗口的背景
popupWindow.setAnimationStyle(R.style.PopupAnimation);//设置窗口显示的动画效果
popupWindow.showAtLocation(findViewById(R.id.parent), Gravity.BOTTOM, 0, 0);//设置窗口显示的位置
popupWindow.update();

Style.xml文件:
    
Meun_up.xml文件:
 xmlns:android="http://schemas.android.com/apk/res/android">
    

你可能感兴趣的:(PopupWindow)