首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android从屏幕底部弹出popupWindow

Android从屏幕底部弹出popupWindow 先看一下效果,看看是不是你想要的效果,免得浪费大家的时间,有一点说明,由于我录制的 gif 是用的模拟器,所以没有屏幕变暗的效果和加速的弹起的效果,实际效果以真机测试为准...> 2.代码部分 我此处用的是一个加速的平移动画,从屏幕底部弹出,然后将屏幕的亮度变暗,让popupwindow获取焦点,就可以实现了popupwindow从手机屏幕底部弹出的效果...()) { case R.id.rlIcon: // TODO 弹出popupwind选择拍照或者从相册选择 changeIcon...popupWindow.setOutsideTouchable(true); // 平移动画相对于手机屏幕的底部开始,X轴不变,Y轴从1变0...} // 设置popupWindow的显示位置,此处是在手机屏幕底部且水平居中的位置 popupWindow.showAtLocation(SettingActivity.this.findViewById

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

    Android PopupWindow怎么合理控制弹出位置(showAtLocation)

    (contentView); 如果创建PopupWindow的时候没有指定高宽,那么showAsDropDown默认只会向下弹出显示,这种情况有个最明显的缺点就是:弹窗口可能被屏幕截断,显示不全,所以需要使用到另外一个方法...如下图所示,我们可以根据屏幕左上角的坐标A,屏幕高宽,点击View的左上角的坐标C,点击View的大小以及PopupWindow布局的大小计算出PopupWindow的显示位置B ?...contentView.getMeasuredHeight(); final int windowWidth = contentView.getMeasuredWidth(); // 判断需要向上弹出还是向下弹出显示...windowContentViewRoot是根布局View 上面的例子只是提供了一种计算方式,在实际开发中可以根据需求自己计算,比如anchorView在左边的情况,在中间的情况,可以根据实际需求写一个弹出位置能够自适应的...补充上获取屏幕高宽的代码ScreenUtils.java: /** * 获取屏幕高度(px) */ public static int getScreenHeight

    3K110

    Android项目实战(十七):QQ空间实现(二)—— 分享功能 弹出PopupWindow

    分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分...PopupWindow ,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出的位置 android="http://schemas.android.com...(this, selectItemsOnClick); // 设置popupWindow显示的位置 // 此时设在界面底部并且水平居中...出现的时候 屏幕的透明度 ,设为0.5 即半透明 灰色效果 backgroundAlpha(0.5f); // 设置popupWindow...取消的点击事件,即popupWindow消失后,屏幕的透明度,全透明,就回复原状态 feedSelectPopupWindow.setOnDismissListener(

    1.1K60

    Android6.0源码分析之menu键弹出popupwindow菜单流程分析

    例如上图,在按下菜单键后会弹出对应的菜单选项,准确来说,是在菜单键弹起后出现的一个popupwindow,那么从菜单键弹起到popupwindow创建所涉及到的历程是怎样的呢?...按键键值,通知framework层,framework经过一系列的处理后分发给上层,或者拦截掉 现在是假设framework层已经把menu按键分发给了用户,那么接下里就是activity进行响应,所以从Activity...开始看起,整体流程如下: 从按键弹起framework层分发到activity开始,到弹出popupwindow结束整个流程图 代码所在目录如下 流程图中所涉及到的一些只是单纯的作为中介调用了一下,按着流程自己也可以看到...,或者正在弹出,然后在进行popup对象的实例化,并开启加载popup的线程。...popup,mPopup.tryShow(); 到这里menu按下从activity分发到popup的弹起就分析完了

    1.6K60

    Android中文API——PopupWindow

    API文档 继承树: java.lang.Object ↳ android.widget.PopupWindow 概述: popupWindow,顾名思义,用作在当前Activity前弹出一个界面...setBackgroundDrawable(Drawable background) //设置pw背景 void setClippingEnabled(boolean enabled) /*允许弹出窗口超出屏幕范围...默认情况下,窗口被夹到屏幕边界。设置为false将允许Windows精确定位。...Events都有一个大小,当Events的大小比手指尺寸大时即为CheekPress,这个可能常用于打电话时脸颊碰到屏幕的情况*/ void setOnDismissListener(PopupWindow.OnDismissListener...window显示指定的内容 parent:传你当前Layout的id; gravity:Gravity.BOTTOM(以屏幕左下角为参照),偏移量会以它为基准点 当x y为0,0是出现在底部居中*

    1.2K20

    干货一:通过自定义PopupWindow实现QQ菜单选项功能

    概述 我们在使用手机QQ时,点击菜单键,会弹出如本案例说演示的效果图似的菜单选项。 ? 实现方式有很多种,在这里我们来演示下如何通过自定义PopupWindow的方式一步一步的实现如上效果。...点击外部,PopupWindow可消失 …… 实现 自定义PopupWindow UI编写 位于父布局的底部 距边框有一定的距离,根布局使用layout_margin即可 ListView(四个圆角+...白色背景) + View分割(透明色) +底部文字(圆角+白色背景) 蓝色字体 居中显示(ListView中的 在Item设置即可,底部文字设置gravity即可) ……....布局文件如下所示: list_popupwindow.xml android="http://schemas.android.com/apk/res/android...; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.TextView;

    80630

    屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案

    接到一个博友的反馈,在屏幕旋转时调用 PopupWindow 的 update 方法失效。...使用场景如下:在一个 Activity 中监听屏幕旋转事件,在Activity主布局文件中有个按钮点击弹出一个 PopupWindow,另外在主布局文件中有个 ListView。...-- 这个ListView的显示隐藏直接影响到PopupWindow在屏幕旋转的时候update方法是否生效 --> <ListView android:id="@+id/listview"...监听屏幕旋转并调用PopupWindow的update方法,发现如果ListView可见的时候,update方法不生效,ListView不可见的时候update生效" /> <Button android...:layout_marginLeft="44dp" android:layout_marginTop="40dp" android:text="点击弹出PopupWindow" />

    1.2K00

    Android PopupMenu and PopupWindow

    2.实例基础代码 我们要实现的界面就是上面所示的界面,上下各有两个按钮,点击按钮分别在正确的位置弹出PopupMenu或者PopupWindow,下面是界面代码: <RelativeLayout...); return true; } return false; } 从上面的代码可以看出,不论是点击上面的还是下面的show popup menu按钮,结果都是弹出在当前按钮附近显示...4.实现PopupWindow 实现PopupWindow稍微复杂些,但是自定义性更强,它可以将任意界面设置为PopupWindow。...}); } 从上面代码可以看出,点击上面和下面的按钮代码略微不同,因为这里我希望PopupWindow一直是从界面的底部慢慢滑入进入的,所以要控制下位置。...android:duration="200"/> (3)使用PopupWindow还有不少需要注意的地方,例如你上面看到的代码中很多判断popupwindow是否为null或者是否正在显示等,有一个情况是

    2.3K21

    Android开发笔记(六十五)多样的菜单

    在实际开发中,Android自带的菜单显得朴素不够灵活,一个是位置固定,如选项菜单固定从页面底部弹出,溢出菜单固定从页面右上角弹出,上下文菜单固定显示在页面中央;另一个是样式固定,无法设置菜单背景...PopupWindow的机制是实现一个弹出框,其内容可以是任意布局的View,其页面悬浮在当前Activity页面之上。...2、弹窗在弹出和消失时显示伸缩动画; 调用setAnimationStyle方法设置动画样式,该样式在styles.xml中定义,其中"android:windowEnterAnimation"项定义的是展示弹窗时的动画...; import android.widget.Button; import android.widget.ListView; import android.widget.PopupWindow; import...android.widget.Toast; import android.widget.PopupWindow.OnDismissListener; public class MainActivity

    1.3K30

    屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案

    接到一个博友的反馈,在屏幕旋转时调用 PopupWindow 的 update 方法失效。...使用场景如下:在一个 Activity 中监听屏幕旋转事件,在Activity主布局文件中有个按钮点击弹出一个 PopupWindow,另外在主布局文件中有个 ListView。...-- 这个ListView的显示隐藏直接影响到PopupWindow在屏幕旋转的时候update方法是否生效 --> <ListView android:id="@+id/listview"...监听屏幕旋转并调用PopupWindow的update方法,发现如果ListView可见的时候,update方法不生效,ListView不可见的时候update生效" /> <Button android...:layout_marginLeft="44dp" android:layout_marginTop="40dp" android:text="点击弹出PopupWindow" />

    1.9K90

    Android沉浸式状态栏与DialogPopupWindow兼容

    背景 在使用某APP的过程中发现,该APP对PopupWindow的沉浸式支持并不好,在使用PopupWindow的时候,状态栏会变成纯白色,看不到时间信号等等。如下图所示 ?...APP弹出菜单时候状态栏底色纯白 而正常的状态栏应该如下图所示 ? 正常情况下状态栏显示 问题追踪 看到这个之后觉得顶部看不到时间、信号神马的非常不舒服,于是上Google查了一下原因。.../Dialog弹出的时候,也可以正常显示了,在自己做的Demo中也证实了这一点 解决办法 在PopupWindow/Dialog展示(show)之前,调用setFocusable(false),这样在弹出...PopupWindow的时候没有焦点,就不会影响沉浸式状态栏的显示了。...遗留问题 因为Android底部有虚拟按键,上网查资料发现都说需要设置Popup的WindowInputMethod,但是发现和预期不一样,会导致虚拟按键的位置有问题,所以,暂时没有解决方案,最后还是通过

    4.5K30

    信息提醒之Toast-更新中

    概述 Toast与对话框类似,也会在屏幕的某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同的是,Toast信息提示框不可获得焦点,而且在显示一定的时间后会自动关闭。...因此,再显示Toast信息提示框的同时,屏幕上的控件仍然可以继续操作。 Toast的基本用法 显示Toast需要使用android.widget.Toast类。...如果同时多个Toast信息提示框,系统会将这些Toast信息提示框放到队列中,等前一个Toast信息提示框关闭后会显示下一个Toast信息提示框,也就是说Toast信息提示框是按顺序显示的 ---- 用PopupWindow...(this); View view = inflater.inflate(R.layout.activity_popupwd_toast, null); final PopupWindow...popupWindow = new PopupWindow(view,500 ,200); popupWindow.setTouchable(false); popupWindow.showAtLocation

    75150
    领券