• popupwindow展示


      样式:

      layout:

    popup_appinfo.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="wrap_content"
     4     android:layout_height="wrap_content"
     5     android:background="@drawable/pop_bg"
     6     android:orientation="horizontal" >
     7 
     8     <TextView
     9         android:id="@+id/tv_uninstall"
    10         android:layout_width="wrap_content"
    11         android:layout_height="wrap_content"
    12         android:layout_margin="3dp"
    13         android:drawablePadding="3dp"
    14         android:drawableTop="@drawable/ic_uninstall"
    15         android:text="卸载"
    16         android:textColor="@color/black"
    17         android:textSize="16sp" />
    18 
    19     <TextView
    20         android:id="@+id/tv_open"
    21         android:layout_width="wrap_content"
    22         android:layout_height="wrap_content"
    23         android:layout_margin="3dp"
    24         android:drawablePadding="3dp"
    25         android:drawableTop="@drawable/ic_open"
    26         android:text="打开"
    27         android:textColor="@color/black"
    28         android:textSize="16sp" />
    29 
    30     <TextView
    31         android:id="@+id/tv_share"
    32         android:layout_width="wrap_content"
    33         android:layout_height="wrap_content"
    34         android:layout_margin="3dp"
    35         android:drawablePadding="3dp"
    36         android:drawableTop="@drawable/ic_share"
    37         android:text="分享"
    38         android:textColor="@color/black"
    39         android:textSize="16sp" />
    40 
    41     <TextView
    42         android:id="@+id/tv_info"
    43         android:layout_width="wrap_content"
    44         android:layout_height="wrap_content"
    45         android:layout_margin="3dp"
    46         android:drawablePadding="3dp"
    47         android:drawableTop="@drawable/ic_info"
    48         android:text="信息"
    49         android:textColor="@color/black"
    50         android:textSize="16sp" />
    51 
    52 </LinearLayout>

      anim:

    popup_enter.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:shareInterpolator="false" >
     4 
     5     <translate
     6         android:duration="400"
     7         android:fromXDelta="100%p"
     8         android:interpolator="@android:interpolator/overshoot"
     9         android:toXDelta="0" />
    10 
    11     <alpha
    12         android:duration="400"
    13         android:fromAlpha="0.2"
    14         android:toAlpha="1.0" />
    15 
    16 </set>

    popup_exit.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <set xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:shareInterpolator="false" >
     4 
     5     <translate
     6         android:duration="400"
     7         android:fromXDelta="0"
     8         android:interpolator="@android:interpolator/anticipate"
     9         android:toXDelta="50%p" />
    10 
    11     <alpha
    12         android:duration="400"
    13         android:fromAlpha="1.0"
    14         android:toAlpha="0" />
    15 
    16 </set>

    code:

    Activity.java

    ......

     1     //显示popupwindow
     2     protected void showPopup(View itemView) {
     3         if (mPopupWindow == null) {//只需要初始化一次弹窗
     4             //初始化弹窗布局
     5             View view = View.inflate(this, R.layout.popup_appinfo, null);
     6 
     7             //设置按钮点击事件
     8             TextView tvUninstall = (TextView) view
     9                     .findViewById(R.id.tv_uninstall);
    10             TextView tvOpen = (TextView) view.findViewById(R.id.tv_open);
    11             TextView tvShare = (TextView) view.findViewById(R.id.tv_share);
    12             TextView tvInfo = (TextView) view.findViewById(R.id.tv_info);
    13             tvUninstall.setOnClickListener(this);
    14             tvOpen.setOnClickListener(this);
    15             tvShare.setOnClickListener(this);
    16             tvInfo.setOnClickListener(this);
    17 
    18             //初始化弹窗对象
    19             ////参1:布局; 参2,3:宽高; 参4:获取焦点
    20             mPopupWindow = new PopupWindow(view,
    21                     WindowManager.LayoutParams.WRAP_CONTENT,
    22                     WindowManager.LayoutParams.WRAP_CONTENT, true);
    23 
    24             //设置背景;只有设置了背景,点击窗口外侧和返回键,弹窗才会消失
    25             mPopupWindow.setBackgroundDrawable(new ColorDrawable());
    26 
    27             //设置动画样式
    28             mPopupWindow.setAnimationStyle(R.style.PopupAnim);
    29         }
    30 
    31         //显示在item正下方, 然后向上偏移一个item的高度
    32         mPopupWindow.showAsDropDown(itemView, 60, -itemView.getHeight());
    33     }

    ......

      1 //弹窗消失

     2 mPopupWindow.dismiss(); 

    ......

  • 相关阅读:
    【LeetCode】-- 73. Set Matrix Zeroes
    (第三场) A PACM Team 【dp,五维背包】
    POJ 1745 【0/1 背包】
    (第三场) H Diff-prime Pairs 【数论-素数线性筛法+YY】
    POJ 2299 【树状数组 离散化】
    树状数组 && 线段树应用 -- 求逆序数
    HDU 1698 【线段树,区间修改 + 维护区间和】
    HDU 1166 【线段树 || 树状数组,单点修改 维护区间和】
    (第二场)D Money 【dp贪心】
    (第二场)A Run 【动态规划】
  • 原文地址:https://www.cnblogs.com/rongsnow/p/5353439.html
Copyright © 2020-2023  润新知