网上已经有很多弹出框类型了,我自己也记录下自己遇到的。
这个其实不是最好的,但是对我来说是最适合的,
它适用于屏幕上下左右弹出都可以,根据自己的需要,自己设置
可以设置背景色,弹出框大小,以及位置等信息
private int mWidth; private int mHeight; PopupWindow popupWindow; int from = 0; private StartYSJDialogAdapter mDialogAdapter; private GridView ysp_gridlistview; /** * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来 * */ class popupDismissListener implements PopupWindow.OnDismissListener { @Override public void onDismiss() { backgroundAlpha(1f); } } protected void initPopupWindow() { // initData(); View popupWindowView = this.getLayoutInflater().inflate( R.layout.startysjdialoglist, null); // 内容,高度,宽度 if (Location.LEFT.ordinal() == from) { popupWindow = new PopupWindow(popupWindowView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, true); } else { popupWindow = new PopupWindow(popupWindowView, LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, true); } // 动画效果 if (Location.LEFT.ordinal() == from) { popupWindow.setAnimationStyle(R.style.AnimationLeftFade); } else if (Location.RIGHT.ordinal() == from) { popupWindow.setAnimationStyle(R.style.AnimationRightFade); } else if (Location.BOTTOM.ordinal() == from) { popupWindow.setAnimationStyle(R.style.AnimationBottomFade); } // 菜单背景色 ColorDrawable dw = new ColorDrawable(android.R.color.transparent); popupWindow.setBackgroundDrawable(dw); calWidthAndHeight(this); // 宽度 popupWindow.setWidth(mWidth); // //高度 popupWindow.setHeight(mHeight); // 显示位置 if (Location.LEFT.ordinal() == from) { popupWindow.showAtLocation(this.getLayoutInflater() .inflate(R.layout.startysplist, null), Gravity.LEFT|Gravity.TOP, 0, 500); } else if (Location.RIGHT.ordinal() == from) { popupWindow.showAtLocation(this.getLayoutInflater() .inflate(R.layout.startysplist, null), Gravity.RIGHT, 0, 500); } else if (Location.BOTTOM.ordinal() == from) { popupWindow.showAtLocation(this.getLayoutInflater() .inflate(R.layout.startysplist, null), Gravity.BOTTOM | Gravity.TOP, 0, 0); } // 设置背景半透明 backgroundAlpha(0.5f); // 关闭事件 popupWindow.setOnDismissListener(new popupDismissListener()); popupWindowView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return false; // /*if( popupWindow!=null && popupWindow.isShowing()){ // popupWindow.dismiss(); // popupWindow=null; // }*/ // // 这里如果返回true的话,touch事件将被拦截 // // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss // return false; } }); ysp_gridlistview = (GridView) popupWindowView.findViewById(R.id.ysp_gridlistview); getDialogAdapter(); ysp_gridlistview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { popupWindow.dismiss(); switch (position) {} } }); } private void getDialogAdapter() { mDialogAdapter = new StartYSJDialogAdapter(StartMainYSPActivity.this, yslFilterList, R.layout.startysjdialoglist_item); // mDialogAdapter.setOnCheckedChanged(StartMainYSPActivity.this); ysp_gridlistview.setAdapter(mDialogAdapter); } /** * 设置PopupWindow的大小 * * @param context */ private void calWidthAndHeight(Context context) { WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); DisplayMetrics metrics = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(metrics); mWidth = metrics.widthPixels-200; // 设置高度为全屏高度的90% // mHeight = (int) (500); mHeight = (int) (metrics.heightPixels * 0.89); } /** * 设置添加屏幕的背景透明度 * * @param bgAlpha */ public void backgroundAlpha(float bgAlpha) { WindowManager.LayoutParams lp = this.getWindow() .getAttributes(); lp.alpha = bgAlpha; // 0.0-1.0 this.getWindow().setAttributes(lp); } /** * 菜单弹出方向 * */ public enum Location { LEFT, RIGHT, TOP, BOTTOM; }
然后获取网络数据,调用initPopupWindow();这个方法即可实现
相关推荐
**标题:“dialog弹出框”** 在Web开发中,对话框(Dialog)是一种常见的用户界面元素,用于在页面上提供额外的信息或者与用户交互。它通常以弹出窗口的形式出现,可以包含各种输入、按钮、文本等组件。对话框允许...
jQuery Dialog 是一个功能强大的弹出框插件,它是 jQuery UI 库的一部分,广泛应用于网页交互设计中,提供美观且可自定义的对话框效果。在实际项目中,它以其高效和易用性受到开发者的喜爱。 Dialog 弹出框的核心...
在Android开发中,自定义Dialog弹出框是一个常见的需求,它可以帮助我们提供更丰富的用户交互体验,使得信息提示或者操作选择更加个性化。本篇将详细讲解如何创建和使用自定义Dialog,以及涉及到的相关知识点。 ...
"很好用的Dialog弹出框"这个标题暗示我们将讨论如何创建和使用一个功能强大的、易于定制的`Dialog`实例。描述中的“给出demo,用起来很简单”意味着我们将通过一个简单的示例来阐述`Dialog`的使用方法。 `Dialog`的...
本文将详细探讨如何实现一个带有三角形指示箭头的对话框,即"带三角的dialog弹出框",并分享相关代码实现。 首先,我们需要理解Android中的Dialog。它是一个轻量级窗口,通常用来显示临时信息或获取用户输入。在...
最近做android项目的时候,因为系统自带的dialog实在不美观,所以我自定义了比较美观的dialog。而且有圆角和圆形头像,圆角给人柔和的感觉,dialog顶部是个半圆,所以十分美观。说起dialog,没什么代码量,主要工作...
本示例“android-dialog弹出框,弹出gridview条目选中”是一个实现自定义Dialog并集成GridView来展示可选条目的实践案例。下面我们将深入探讨这一主题。 首先,`Dialog`是Android提供的一个类,用于显示一个浮动...
### el-dialog 弹出框组件 `<el-dialog>`是Element UI提供的一个模态框组件,可以用来创建对话框框体。在文件示例中,我们可以看到如何使用`<el-dialog>`来创建一个包含确认/取消功能的提示弹窗。`<el-dialog>`提供...
遮罩层弹出半透明dialog,很fashion。
"QT无边框窗口,无边框弹出框,无边框MessageBox"这一主题主要涉及的是如何在QT中去除窗口的标准边框,以及如何自定义无边框的对话框和消息提示框。 首先,我们来谈谈无边框窗口的实现。在QT中,我们可以使用`...
PopWindow是Android中另一种轻量级的弹出窗口,它可以在Activity之上显示任意的View。与Dialog不同,PopWindow没有预设的外观,完全由开发者自定义。它常用于快速操作或者显示额外的信息,如下拉菜单、快捷工具栏等...
在这个场景中,我们关注的是如何在ASP.NET C#环境中利用jQuery创建一个弹出对话框。 首先,让我们深入了解jQuery UI中的`dialog`组件。jQuery UI提供了丰富的UI元素,其中包括对话框功能。通过使用`dialog`,我们...
在网页开发中,Dialog弹出提示窗是一种常见的交互设计元素,用于向用户显示临时信息、警告、确认对话或提供操作选项。"Dialog 弹出提示窗 js" 是一种使用JavaScript实现的动态弹出窗口技术,它能模拟腾讯等大型...
modalDialog 弹出框 提示框,确认框。 公共参数 clazz: 弹出框的css类名 cancelStr: 取消按钮的按钮名 sureStr: 确定按钮的按钮名 title: 弹出框的标题 content: 弹出框内容 header: 表示头部的html模板 okCallback...
在Android开发中,自定义Dialog背景是一个常见的需求,它能够帮助开发者实现更加个性化和符合应用设计风格的对话框。本文将深入探讨如何实现这一功能,包括理解Dialog的基本原理、自定义布局以及修改Dialog的背景。 ...
总之,“Android自定义弹出框实现(修改版)完整实例源码”提供了一种自定义Android弹出框的实现方式,通过学习和理解这个实例,开发者能够更好地掌握自定义Dialog的设计和实现,提升应用的界面美观度和用户体验。
在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现自定义Dialog来模仿iOS的弹出框样式。这个“Dialog仿IOS弹出框”项目正是为了达到这一目的,它通过纯代码实现,仅使用XML来处理对话框的圆角效果...
一个Android登录界面的制作范例,以Android dialog方式实现的弹出式登录框,并包括了帐号密码保存、加密算法等模块源码。本登录源码将对密码信息进行AES加密算法加密后保存,有些功能需要服务器配合才能看到,比如...