首页
学习
活动
专区
圈层
工具
发布

Android中文API——PopupWindow

API文档 继承树: java.lang.Object ↳ android.widget.PopupWindow 概述: popupWindow,顾名思义,用作在当前Activity前弹出一个界面...公共方法: void dismiss() //使popup window消失 int getAnimationStyle() //返回该popup window出现或消失的动画类型,返回值为整型...Drawable getBackground() //返回popup window的背景,返回值为Drawable类型 void setContentView(View contentView...是否获得焦点 boolean isOutsideTouchable() //判断当前pw的外界触碰是否有响应 boolean isShowing() //判断当前popup window是否处于显示状态...Events都有一个大小,当Events的大小比手指尺寸大时即为CheekPress,这个可能常用于打电话时脸颊碰到屏幕的情况*/ void setOnDismissListener(PopupWindow.OnDismissListener

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android】PopupWindow弹窗

    "match_parent" tools:context=".popupwindow.PopupWindowActivity"> <Button android:id=...根布局的高度 PopupWindow根布局的高度不要写成match_content(匹配父布局),PopupWindow的设计初衷是作为 “轻量级悬浮弹窗”,而非全屏视图。...使用**wrap_content**或精确指定高度,才能让PopupWindow的行为符合预期,避免隐藏的兼容性与用户体验问题。...(2)根布局返回类型 包不要导错了,用androidx下的包 3:问题 (1)透明区域的设置 (2)关闭弹窗后透明度还原 (3)底部弹窗也变成透明 给根布局背景色设置为白色即可 效果对比 4:setOutsideTouchable...,但是有些商业需求比较奇葩, 思路:当弹窗时,给空余区域加一个透明的样式;当关闭的时候,再把这个样式给关闭掉 Alpha透明度之前学过的,包括如何获取它,修改它,再把修改后的参数设置回去,这里用方法包装了一下

    16610

    安卓开发个人小作品(3) – 多功能音乐播放器

    e.printStackTrace(); } } } } 其中,ischanging用于判断当前的seekbar是否处于滑动状态...自定义seekbar,需要在布局中设置progressDrawable和thumb,分别对应进度条的背景和进度条的指示小图标,我这里进度条的背景采用的是drawable,代码如下 <?...主要就是sharepreference的使用,代码很简单,就不贴了 6.播放列表背景图设置与保存 设置播放列表背景也就是调用一下,listview.setBackground即可,但是我们如果不进行保存的话...,下次进入APP的时候,背景图可能又恢复为初始的,那么我们就需要保存列表ode背景图,这里也采用sharepreference来保存,首先用Base64将图片转换为String,然后保存起来,下次进入APP...的背景色随主题改变而更换,那么在popupwindow的布局中,设置其background属性为如下即可 android:background="?

    2K30

    五年Android开发,让我“刻骨铭心”的那些坑

    方法第一个参数为需要依附的view),在Activity没有完全显示时,PopupWindow无法依附在该View上,如果在此时显示PopupWindow会导致上面的异常,同样在退出Activity后也不能正常显示...并且只有在Android 3.1及以上的版本才会出现,具体原因是:从Android3.1开始,新安装的程序会被置于"stopped"状态,并且只有在至少手动启动这个程序一次后该程序才会改变状态,能够正常接收到指定的广播消息...(表示不包含未启动的App),用来控制Intent是否要对处于停止状态的App起作用。...Activity是依附在Window上的,如果给Activity设置了背景,并且没有去掉window的背景,很容易导致过渡绘制;这里还有一个坑,有的应用为了避免程序冷启动时出现黑屏/白屏的问题,在主题中给...循环动画: 问题现象:在不待机的情况下,长时间处于一个界面时,手机发烫; 原因分析:界面中存在循环动画,CPU、GPU一直在工作; 解决方案:循环动画会导致界面一直在刷新,CPU、GPU持续工作,

    1.8K40

    Android 收集开源库记录

    ---- 尝试每天一更~~ ---- 页面切换以及PopupWindow ---- 现在很多的app主页的一个activity都有很多的页面,比如qq以及微信等等,今天的主要是利用ViewPager和PopupWindow...我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。...其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。...当然这种效果只支持在API 19(Android4.4)及以上使用沉浸式状态。参考了GitHub/niorgai。...---- 左滑或者右滑出现菜单选项框架 ----- AndroidResideMenu2D或3D的效果很流畅,文档API的说明也很详细,关键是封装的很不错。 中文api说明在百度云【百度云盘】 ?

    69860

    手把手教你撸一个Loading

    作为 Android 开发者,无奈经常会碰到各种各样的奇葩需求,现在大多公司 UI 设计图、标注都是按 IOS 来设计的,包括一个IOS特有的效果等,要实现和 IOS 一样的效果,无奈 Android...只能各种仿 IOS 了,经常也是产品被怼,IOS 能实现,为什么 Android 不能实现?...实现的思路是,在页面上弹出一个全屏的 popupWindow,居中是一个半透明的圆角shape,中间一个 gif 图片,下面是一个 TextView,最外层布局背景为透明,另外把其他需外设置的属性及参数通过建造者模式从外部进行配置...依赖于Activity,所以必须要调用 setDropView 方法设置要挂载的 View, // 一般是 Activity 或 Fragment 的根 View,其他参数可根据需求进行设置...setListener(listener) // 设置监听 .setDropView(activity_main) // 设置要挂载的 View(必须要设置),一般是 Activity 或

    51120

    手机可以拍摄出2.4亿像素图像?

    当我们拍摄灯光暗淡或者背景辐射明亮的场景时,这些照片经常会曝光过度或不足而变得模糊。例如,前景可能完全处于阴影中,或者细节将变得模糊。...例如,我们可以选择向前景添加其他细节并忽略背景,这也正是深度传感器的深度图的用处所在。另外,我们还可以访问摄像机拍摄的所有原始文件。...将一个光线暗淡的室内场景和人物拍摄的十分清晰,小白不得不感叹高动态范围成像技术的强大。 再来看一个例子: ? 这两张照片都是用同一台相机拍摄的。...好了,今天小白为大家带来的高动态范围成像技术到这里就结束了,如果大家想要认真学习一下这项技术,可以使用Photomatix Pro或Photoshop软件进行学习。

    80130

    Android拾萃- Activity的生命周期和启动模式

    Android系统是通过Activity栈来管理Activity的,而Activity则是通过哦生命周期来进行自己的创建、活动与销毁等。所以掌握Activity生命周期很有必要。 金字塔模式 ?   ...这个模型中包含了Activity的六种状态: Created:创建完成 Started:可见(不可交互) Resumed:可见(活动) Paused:部分可见(后台) Stopped:不可见 Destroyed...,后面两个状态是进入了另一个界面活动,如果打开一个dialog或者透明主题(dialog主题)的Activity,这个时候,只会进入paused状态,不会进入stoped状态。...因为Dialog、PopupWindown不能脱离Activity而单独存在着,所以当承载某个Dialog或者某个PopupWindow正在显示的Activity被finish()后,而Dialog(或...PopupWindow)没有正常退出的话,就会抛Window Leaked错误了,因为这个Dialog(或PopupWindow)的WindowManager已经没有谁可以附属了,所以它的窗体管理器就泄漏了

    1.8K50

    Android窗口管理分析(3):窗口分组及Z-order的确定总结

    在Android系统中,窗口是有分组概念的,例如,Activity中弹出的所有PopupWindow会随着Activity的隐藏而隐藏,可以说这些都附属于Actvity的子窗口分组,对于Dialog也同样如此...其他应用程序窗口都显示在它上面 TYPE_APPLICATION =2 普通应用程序窗口,token必须设置为Activity的token TYPE_APPLICATION_STARTING =3 应用程序启动时所显示的窗口...最后看几个系统窗口类型, 窗口TYPE值 窗口类型 FIRST_SYSTEM_WINDOW = 2000 系统窗口 TYPE_STATUS_BAR = FIRST_SYSTEM_WINDOW 状态栏...--开始肯定是隐藏状态,因为还没有resume--> atoken.hidden = true; atoken.hiddenRequested = true...与mSubLayer所能选择的值只有固定几个,很明显这两个参数不能精确的确定Z-order,还会有其他微调的手段,也仅限微调,在系统层面,决定了不同类型窗口所处的位置,比如系统Toast类型的窗口一定处于所有应用窗口之上

    3K50

    欢迎体验 | Android 12 开发者预览版 2

    应用覆盖控制 - Android 的系统警告对话框允许一个应用在其他活动应用之上覆盖显示一个图层,以帮助应用提醒用户关注重要操作。...保持配套设备应用唤醒 - 对于管理智能手表和健身跟踪器等配套设备的应用,如何确保关联的配套设备位于附近时保持运行和连接状态是个难题。...当设备在附近时,系统会确保服务处于唤醒状态,并且当设备进入和离开连接范围或关机时,系统会向服务发出通知,以便应用根据需要清理状态。...这个 API 可以设置模糊半径,以调整雾面密度和范围,平台只会对您的应用窗口边框内的背景内容应用模糊效果。...△ 窗口背景及窗口后面的内容均模糊化处理的对话框窗口 应用兼容性 在推出新的平台版本时,我们会优先考虑应用的兼容性,让系统更新的体验更快速、更顺畅。

    79320

    Android 子线程 UI 操作真的不可以?

    ​作者:vivo 互联网大前端团队- Zhang Xichen 一、背景及问题 某 SDK 有 PopupWindow 弹窗及动效,由于业务场景要求,对于 App 而言,SDK 的弹窗弹出时机具有随机性...) // Dialog的显示方法 PopupWindow.invokePopup(LayoutParams) (android.widget) PopupWindow.showAtLocation...) (android.widget) // Toast的展示方法 从调用关系我们看到,如Dialog、PopupWindow、Toast等,均是在调用展示方法时才attach窗口并与RootViewImpl...理解Android屏幕刷新机制 我们知道,View绘制时由invalidate方法触发,最终会走到其onMeasure、onLayout、onDraw方法,完成绘制,这期间的过程,对我们理解UI线程管理有很重要的作用...系统Toast的弹出等绘制,是由系统层面统一控制,也并非App自身的主线程或UI线程绘制。

    1.3K40

    仿uc下部弹出菜单

    发现没,UC的菜单箭头绝对是对准所点击按钮的,有人可能觉得用不同的图片就行了,对于一种机型可以这么做,android机型千千万,你要怎么配型,这是个很大的工作量,吃力不讨好啊。...为啥要把按钮4等份,把其中的2份给图1和图3呢,这是为了防止按钮居左或居右时,解决图1和图3的宽度为NULL情况。...,根据父控件来获得                 popupWindowHeight = popupWindow.getHeight();//得到popupWindow的高度,在popupWindow...(bg);//给popupWindow设置背景                 popupWindow.showAtLocation(parent, Gravity.BOTTOM, 0, parent.getHeight...popupWindow.update(); } mapDrawable是一个HashMap对象,用来保存生成的背景的,多次调用肯定会带来内存和时间上的大量损耗,所以一个按钮生成一个背景后保存下来下次再用是非常好的方法

    1.9K80

    游戏优化系列三:Unity游戏的黑屏问题解决方法

    (3)对比Android原生工程 (4)unity脚本生命周期 (5)分析脚本生命周期 三、结论 一、背景 在Unity游戏工程中,经常遇到这样的问题:打开登录弹框时,点击Home键先处理其他事宜再返回...但是,一般来说,前台活动具有窗口焦点。除非它显示了其他接受输入焦点的对话框或弹出窗口,在这种情况下,当其他窗口有焦点时,活动本身就没有焦点。...从Android Q开始,在多窗口模式下,可以同时有多个恢复的活动,因此即使上面没有覆盖,恢复状态也不能保证窗口焦点。...(如果游戏对象在启动期间处于非活动状态,则在激活之后才会调用 Awake。) -- OnEnable:(仅在对象处于激活状态时调用)在启用对象后立即调用此函数。...在编辑器中,用户停止播放模式时,调用函数。 -- OnDisable:行为被禁用或处于非活动状态时,调用此函数。

    7.3K01

    Android面试常问基础知识点(附详细解答)

    Android中会维持一个Activity Stack,当一个新Activity创建时,它就会放到栈顶,这个Activity就处于运行状态。...(6)二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));去掉。...(7)Popupwindow弹出后,取得了用户操作的响应处理权限,使得其他UI控件不被触发。而AlertDialog弹出后,点击背景,AlertDialog会消失。...31、序列化的作用,以及Android两种序列化的区别 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。...以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 简单地说:“序列化”就是将运行时的对象状态转换成二进制,然后保存到流、内存或者通过网络传输给其他端。 ?

    3.4K31

    Android开发框架Collection

    3.PopupWindow的使用。 4.DisplayUtils工具类对状态栏的修改。 v1.2.5 1.修正Retrofit DEFAULT_POST请求方式指向错误。...: 属性 作用 STATE_PULL_DOWN 拉的状态(还没到下拉到固定的高度时) STATE_RELEASE_REFRESH 下拉到固定高度提示释放刷新的状态 STATE_REFRESHING 正在刷新状态...=this 2.onStateChange的模板样式 @Override public void onStateChange(int state) { //下拉时状态相同不做继续保持原有的状态...setStatusBarColor 设置状态栏背景颜色 setStatusBarFullTranslucent 设置状态栏透明 getStatusBarHeight 获取状态栏高度 getActionBarHeight...loadImgBlur Glide实现高斯模糊,可设置模糊的程度 7 .ThreadPoolManager:线程池管理类 8.LogUtils:日记工具类 9.NetworkUtils:网络工具类

    29610

    记一次代码中毒急救

    事情的经过是这样的(我要开始讲故事了) 很久很久以前,天地混沌,盘古开天辟地以后有了太阳和月亮,天空和大地,Android 操作系统也随之崛起。但是,还缺少一样东西,那就是自定义控件。...好不容易做好了三种状态要显示的悬浮窗都做好了,又发现长按的时候操作菜单和游标也需要显示在正确的位置上。...照这种状态可能每个界面同时显示多个悬浮窗出来。 3....把接入控件抽出来做成一个接口,只暴露出该 View 有的方法,然后所有要接入划词功能的 View 都实现这个接口就好了,其中 getTouchX() 和 Y 是返回用户手指按下的坐标,需要在实现接口协议时重写...第三步:抽出 SelectionInfo,封装高亮显示的文本信息,包括文本的起始坐标,结束坐标,文本长度,高亮的背景颜色,在整个 TextView 文本的位置等。 ?

    1K20
    领券