android 之popwindow 小结
来源:互联网 发布:云计算行业发现趋势 编辑:程序博客网 时间:2024/06/05 04:48
一、首先,我们要大概了解popwindow是什么
PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。
先看效果图
比如说微信的一个界面,
比如说qq的一个界面
二、那么具体怎么来实现这种悬浮的弹出框呢,下面来详细介绍
首先做好要引用的view,也就是圆框圈住的那些
然后在当前界面的activity中加载即可
下面以微信为例,进行讲解
package com.wgm.view;import com.wgm.util.DialogUtil;import android.app.Activity;import android.app.Dialog;import android.content.Intent;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.ImageButton;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.RelativeLayout;import android.widget.Toast;public class AssnContentActivity extends Activity implements OnClickListener {private ImageButton ibtn_look;//popwindow窗口private PopupWindow mPopupwinow;private View view_pop;private View relay_assncontent_top;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.assncontent);initView();}@Overridepublic void onClick(View v) {if (v == ibtn_look) {if (mPopupwinow == null) {// 新建一个popwindowmPopupwinow = new PopupWindow(view_pop,LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT,true);// 设置popwindow的背景颜色mPopupwinow.setBackgroundDrawable(new ColorDrawable(0xAA000000));/*颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000 */}// 设置popwindow的位置relay_assncontent_top:为微信右上角+号view,居于+号下方mPopupwinow.showAsDropDown(relay_assncontent_top, 0, 0);mPopupwinow.setFocusable(true);// menu菜单获得焦点mPopupwinow.setOutsideTouchable(true);// 如果没有获得焦点menu菜单中的控件事件无法响应mPopupwinow.update();return;}}public void initView() {ibtn_look = (ImageButton) findViewById(R.id.assncontent_look);relay_assncontent_top = findViewById(R.id.assncontent_Relay_top);view_pop = LayoutInflater.from(AssnContentActivity.this).inflate(R.layout.assn_top_user, null);ibtn_look.setOnClickListener(this);view_pop.setOnClickListener(this);}}
ibtn_look是右上角的加号按钮
R.layout.assn_top_user就是要引用的view
如果并不想让悬浮的弹出框只在某个位置,而是想让其铺满整个界面,就要用
mPopupwinow.showAtLocation(v,Gravity.LEFT, 0, 0);
关于popwindow位置的一些方法
- showAsDropDown(anchor);//以触发弹出窗的view为基准,出现在view的正下方,弹出的pop_view左上角正对view的左下角 偏移量默认为0,0
- showAsDropDown(anchor, xoff, yoff);//有参数的话,就是一view的左下角进行偏移,xoff正的向左,负的向右. yoff没测,也应该是正的向下,负的向上
- showAtLocation(parent, gravity, x, y);//parent:传你当前Layout的id; gravity:Gravity.BOTTOM(以屏幕左下角为参照)... 偏移量会以它为基准点 当x y为0,0是出现在底部居中
ibtn_close = (ImageButton)view_pop.findViewById(R.id.check_old_pwd_close);
关掉popwindow,使用mPopupwinow.dismiss();方法
0 0
- android 之popwindow 小结
- android之popwindow操作
- Android之PopWindow
- android系列之popwindow简单应用
- android PopWindow
- Android:PopWindow
- Android POPWindow
- 【Android】popWindow
- PopWindow使用小结
- Dialog和PopWindow使用小结
- Android 点击PopWindow外围,PopWindow消失
- popwindow之弹出动画
- Android中的popWindow
- Android中的popWindow
- android popwindow的使用
- Android应用开发--PopWindow
- Android PopWindow使用
- android popwindow的使用
- 程序的内存布局
- mathtype批量修改公式的字体大小
- Aspose.words编程指南之DocumentBuilder二
- API Hook完全手册
- Android系统启动流程
- android 之popwindow 小结
- Unity 2D游戏开发教程之游戏精灵的开火状态
- mapreduce的二次排序 SecondarySort
- 简单拓扑发现实现过程及其物联网应用设想
- Json 转 指定 C#对象,给c#对象赋值
- fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)
- 巧用jsp页面用表单实现动态打印功能
- iPhone导出照片到电脑
- 追剧补番达人必备五款APP排行