欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现简单的popupwindow提示框

程序员文章站 2023-09-04 14:07:04
popupwindow大家肯定都特别熟悉了 像一般的提示框的话我们会用dialog来做 但是随着设计要求的不断提高,app中各式各样的提示框都有,很明显普通的dialog实...

popupwindow大家肯定都特别熟悉了 像一般的提示框的话我们会用dialog来做 但是随着设计要求的不断提高,app中各式各样的提示框都有,很明显普通的dialog实现起来就比较吃力了 所以用popupwindow来实现是最好不过了 ,于是我也自己写了一个popupwindow弹出的一个方法,代码量少简单灵活 先看一下效果图

Android实现简单的popupwindow提示框

大致效果就是这样 当然你也可以将layout中的布局换成自己的布局 接下来是代码

private void ejectpopup() {
 
    view parent = ((viewgroup) this.findviewbyid(android.r.id.content)).getchildat(0);
    view popview = view.inflate(this, r.layout.details_share, null);
 
 
    int width = getresources().getdisplaymetrics().widthpixels;
    int height = getresources().getdisplaymetrics().heightpixels;
//    int i = height /5*2;
     popwindow = new popupwindow(popview, width, viewgroup.layoutparams.wrap_content);
    popwindow.setanimationstyle(r.style.search_popupwindowanimation);
    popwindow.setfocusable(true);
    popwindow.setoutsidetouchable(false);// 设置同意在外点击消失
    colordrawable dw = new colordrawable(0x30000000);
    popwindow.setbackgrounddrawable(dw);
    popwindow.showatlocation(parent, gravity.bottom | gravity.center_horizontal, 0, 0);
    popwindow.setsoftinputmode(windowmanager.layoutparams.soft_input_adjust_resize);//被home键挡住
    //给popup中的按钮做监听
    windowmanager.layoutparams lp = getwindow().getattributes();
    lp.alpha = (float) 0.7; //0.0-1.0
    getwindow().setattributes(lp);
    popwindow.setondismisslistener(new popupwindow.ondismisslistener() {
      @override
      public void ondismiss() {
        windowmanager.layoutparams lp = getwindow().getattributes();
        lp.alpha = (float) 1; //0.0-1.0
        getwindow().setattributes(lp);
      }
    });
}

这个就是调用的方法  背景变暗可以通过这段代码来实现

 popwindow.setondismisslistener(new popupwindow.ondismisslistener() {
      @override
      public void ondismiss() {
        windowmanager.layoutparams lp = getwindow().getattributes();
        lp.alpha = (float) 1; //0.0-1.0
        getwindow().setattributes(lp);
      }
    });

当让也可以让ui妹子给你切一个透明的背景图片 
最后是layout中的代码

<?xml version="1.0" encoding="utf-8"?>
<com.zhy.autolayout.autolinearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:orientation="vertical" android:layout_width="match_parent"
  android:background="#fff"
  android:layout_height="239dp">
 
  <com.zhy.autolayout.autolinearlayout
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="51dp">
 
    <textview
      android:text="请选择分享平台"
      android:textcolor="#29292a"
      android:textsize="18sp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
  </com.zhy.autolayout.autolinearlayout>
 
  <textview
    android:background="@color/divider_color"
    android:layout_width="match_parent"
    android:layout_height="1dp" />
  
  <com.zhy.autolayout.autolinearlayout
    android:layout_marginbottom="10dp"
    android:layout_width="match_parent"
    android:layout_height="132dp">
    <com.zhy.autolayout.autorelativelayout
      android:id="@+id/share_wx"
      android:layout_marginleft="13dp"
      android:layout_width="0dp"
      android:layout_weight="1"
      android:layout_height="match_parent">
 
      <imageview
        android:id="@+id/share_wx_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
        app:srccompat="@drawable/wechat" />
 
      <textview
        android:text="微信"
        android:layout_margintop="6dp"
        android:layout_below="@id/share_wx_icon"
        android:layout_centerhorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </com.zhy.autolayout.autorelativelayout>
    <com.zhy.autolayout.autorelativelayout
      android:id="@+id/share_wxpyq"
      android:layout_width="0dp"
      android:layout_weight="1"
      android:layout_height="match_parent">
 
      <imageview
        android:id="@+id/share_wxpyq_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
        app:srccompat="@drawable/circleoffriends" />
 
      <textview
        android:text="朋友圈"
        android:layout_margintop="6dp"
        android:layout_below="@id/share_wxpyq_icon"
        android:layout_centerhorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </com.zhy.autolayout.autorelativelayout>
    <com.zhy.autolayout.autorelativelayout
      android:layout_width="0dp"
      android:id="@+id/share_qq"
      android:layout_weight="1"
      android:layout_height="match_parent">
 
      <imageview
        android:id="@+id/share_qq_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
        app:srccompat="@drawable/qq" />
 
      <textview
        android:text="qq"
        android:layout_margintop="6dp"
        android:layout_below="@id/share_qq_icon"
        android:layout_centerhorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </com.zhy.autolayout.autorelativelayout>
    <com.zhy.autolayout.autorelativelayout
      android:layout_width="0dp"
      android:layout_weight="1"
      android:id="@+id/share_qqkj"
      android:layout_height="match_parent">
 
      <imageview
        android:id="@+id/share_qqkj_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
        app:srccompat="@drawable/zone" />
 
      <textview
        android:text="空间"
        android:layout_margintop="6dp"
        android:layout_below="@id/share_qqkj_icon"
        android:layout_centerhorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </com.zhy.autolayout.autorelativelayout>
 
    <com.zhy.autolayout.autorelativelayout
      android:id="@+id/share_wb"
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_marginright="13dp"
      android:layout_weight="1">
 
      <imageview
        android:id="@+id/share_wb_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
        app:srccompat="@drawable/weibo" />
 
      <textview
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/share_wb_icon"
        android:layout_centerhorizontal="true"
        android:layout_margintop="6dp"
        android:text="微博" />
    </com.zhy.autolayout.autorelativelayout>
 
  </com.zhy.autolayout.autolinearlayout>
  <textview
    android:background="@color/divider_color"
    android:layout_width="match_parent"
    android:layout_height="1dp" />
  <com.zhy.autolayout.autolinearlayout
    android:id="@+id/share_cancel"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="50dp">
    <textview
      android:gravity="center"
      android:textsize="15sp"
      android:textcolor="#2d2d2d"
      android:text="取消"
      android:layout_width="wrap_content"
      android:layout_height="match_parent" />
  </com.zhy.autolayout.autolinearlayout>
</com.zhy.autolayout.autolinearlayout>

ok  没了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。