Android PopupWindow使用

简介: 1、含义       写的第一篇技术文章还有点小激动,话说popupwindow顾名思义就是类似于对话框样式布局显示,但是却有别于对话框,到底哪里有区别呢,还请客官您细细观看。



1、含义

       写的第一篇技术文章还有点小激动,话说popupwindow顾名思义就是类似于对话框样式布局显示,但是却有别于对话框,到底哪里有区别呢,还请客官您细细观看。

2、区别

1、对话框位置相对来说比较固定,而popupwindow位置相对随意一些,可以自由控制。

2、对话框是线程非阻塞的,而popupwindow是线程阻塞的。

3、代码说明

      1、 话不多说,规矩我懂,先上图(样式比较丑还请您见谅):


img_4065bc8e0159e193d4bc665939e697fe.png
img_34cc35196612667022bff2d3d064c547.png




2、先看popupwindow代码,容我细细道来:

1)、首先自定义一个popupwindow

public class AddPopuwindow extends PopupWindow {

public View mView;

public AddPopuwindow(Activity context) {

LayoutInflater inflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

mView = inflater.inflate(R.layout.popuwindow_dialog, null);

int height = context.getWindowManager().getDefaultDisplay().getHeight();

int width = context.getWindowManager().getDefaultDisplay().getWidth();

// 设置选择的popuwndow的View

this.setContentView(mView);

// 设置弹出的popuwindow的宽

this.setWidth(width / 2 + 50);

// 设置弹出的popuwndow的高

this.setHeight(LayoutParams.WRAP_CONTENT);

// 设置popuwindow的弹出窗体是否可以点击

this.setFocusable(true);

this.setOutsideTouchable(true);

// 刷新状态

this.update();

// 实例化一个colorDrawable颜色为半透明

ColorDrawable colorDrawable = new ColorDrawable(0000000000);

// 点击返回键和其他地方使其消失,设置了这个才能触发OnDismissListener,设置其他控件变化等操作

this.setBackgroundDrawable(colorDrawable);

// 设置SelectPicPopupWindow弹出窗体动画效果

this.setAnimationStyle(R.style.AnimationPreview);

// 绑定布局

LinearLayout addTaskLayout = (LinearLayout) mView

.findViewById(R.id.add_task_layout);

addTaskLayout.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View view) {

// 关闭popuwindow

AddPopuwindow.this.dismiss();

}

});

}


//显示popupwindow

public void showPopuwindow(View view) {

if (!this.isShowing()) {

// 以下拉方式显示popuwindow

this.showAsDropDown(view, view.getLayoutParams().width / 2, 18);

} else {

this.dismiss();

}

}




2、怎么调用呢?当然是绑定布局然后直接调用了

Button mBtnAdd;

mBtnSet.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

AddPopuwindow popuwindow = new AddPopuwindow(MainActivity.this);

popuwindow.showPopuwindow(mBtnAdd);

}

});

3、布局文件(图片):


img_d956d0eb299044d02a0e4e30388ca867.png
布局文件


4、结语

     因为小弟第一次写技术类文章,还有排版什么的,不太熟悉,所以请各位看官多多见谅,请各位轻点打脸。

相关文章
|
12月前
|
Android开发
Android 封装一个通用的PopupWindow
`PopupWindow`这个类用来实现一个弹出框,可以使用任意布局的`View`作为其内容,这个弹出框是悬浮在当前`Activity`之上的,一般`PopupWindow`的使用
227 0
|
XML JSON Java
android 继承popupWindow实现时间、地址选择器
日期选择、地址选择,都是开发中少不了的功能,下面通过自定义的形式,同一套代码实现时间选择与地址选择,通过构造方法的不同来实现。
443 0
android 继承popupWindow实现时间、地址选择器
|
Android开发
Android 7.0及以上PopupWindow 适配问题
Android 7.0及以上PopupWindow 适配问题
106 0
|
XML Android开发 iOS开发
Android 仿IOS的PopupWindow和通用BasePopupWindow搭建
截图 pw.png 实现 1、BasePopupWindow.java 1.1、实现动态加载不同layout 1.2、动态配置是否弹出后背景半透明,关闭时候恢复(监听ondismiss,靠window类来变色) 1.
2344 0
|
Android开发
Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow
原文:Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow 这是一张QQ空间说说详情的截图。 分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变...
886 0
|
Android开发
Android弹窗二则: PopupWindow和AlertDialog
前言 弹窗是图形界面必备的一个模块, 回忆一下windows那些恶心爆了的错误弹窗吧, 把弹窗制作的更高效友好一点是非常必要的. 这里说两个常用的弹窗类, PopupWindow和AlertDialog.
1121 0