PopupWindow自定义位置显示的实现代码

一、概述

在Android中弹出式菜单(以下称弹窗)是使用十分广泛的一种菜单呈现方式,弹窗为用户交互提供了便利。关于弹窗的实现大致有以下两种方式AlertDialog和PopupWindow,当然网上也有使用Activity并配合Dialog主题的方式实现弹窗,有兴趣的朋友也可以去研究一下。对于AlertDialog和PopupWindow两者最主要的区别就是显示的位置问题:

(1)AlertDialog在位置显示上是固定的
(2)PopupWindow相对比较随意,能够在主屏幕的任意位置显示。

二、效果图

三、代码

(1)MainActivity中的代码:

public class MainActivity extends AppCompatActivity { private int x; private int y; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onTouchEvent(MotionEvent event) { // 获得点击屏幕的坐标 x = (int) event.getX(); y = (int) event.getY(); // 加载PopupWindow 对应的界面 LayoutInflater inflater = getLayoutInflater(); final View popupView = inflater.inflate(R.layout.popup_entry_layout,null); // 创建PopupWindow 对象 final PopupWindow popupWindow = new PopupWindow(popupView,400,100); // 第二、第三个参数用来设置弹窗的大小,也可以用WRAP_CONTENT // 设置位置 popupWindow.showAtLocation(popupView, Gravity.NO_GRAVITY,x,y); new Handler().postDelayed(new Runnable() { @Override public void run() { // 1秒后关闭该弹窗 popupWindow.dismiss(); } },1000); return true; } }

(2)布局文件中的代码省略。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-24 20:03:58

PopupWindow自定义位置显示的实现代码的相关文章

Android自定义多节点进度条显示的实现代码(附源码)

亲们里面的线段颜色和节点图标都是可以自定义的. 在没给大家分享实例代码之前,先给大家展示下效果图: main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rl_parent" xmlns:tools="http://schemas.android.com/tools" android:layou

Javascript自定义位置插入百度联盟广告

  百度广告调用方法有直接把js代码放源码这样如果是html页面修改起来麻烦,另一种是直接调用js外部广告,这种如果一个页面10多个代码流量一大页面线程增加导致环境负载过重,下面整理的办法有两种,下面一起来看看. wordpress如何在文章中自定义位置插入百度联盟广告呢?比如设置一个标记位,插入标记位,这个位置就会显示广告.可以用wordpress的add_shortcode函数设置短标签,实现文章页自定义位置插入百度联盟广告. 直接上代码: PHP 代码如下   //百度广告shortcod

自定义对话框显示不出来

问题描述 自定义对话框显示不出来 继承Dialog的代码: import android.app.Dialog; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Shader; import android.graphics.SweepGradie

实现桌面任意位置显示ToolTip

问题描述 对于一个标准C#的winform,目前希望在桌面任意位置显示ToolTip.比如按下键盘某个键,在桌面指定位置显示tooltip.但是toolTip显示时,必须要传入window参数,当焦点移动到窗口外面时,再按下键不会显示toolTop.各位有什么好的建议吗? 解决方案 解决方案二:自定义提示窗体,你就显示窗体就行了,这个好控制解决方案三:在你这个问题上toolTip跟窗体没啥区别解决方案四:引用1楼bdmh的回复: 自定义提示窗体,你就显示窗体就行了,这个好控制 当初使用toolt

教您纯Jsp的自定义的单个文件上载代码

js 本文是一个纯Jsp的自定义的单个文件上载代码: <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.io.*"%> <%@ page import="java.util.*"%> <%@ page import="javax.servlet.*"%> <%@ page impor

基于ASP.NET的自定义分页显示

asp.net|分页|显示 摘要:本文针对WEB数据库记录的显示问题,用实例讨论了在ASP.NET框架下使用DataGrid控件对数据库记录的一种自定义分页显示. 关键词:WEB数据库:ASP.NET:DataGrid:分页 引言 在用户进行数据查询时通常有这样的情况,一个数据库查询将返回太多的行,一致不能在一页中显示.如果用户正在使用一个慢的链接,发送特别大的数据结果可能要花很长的时间.一旦获得了数据,用户可能发现它不包含正确的内容,或者查询范围太大,没有容易的办法检查完所有的结果来找到重要的

jsp分页显示的实现代码

 这篇文章主要介绍了jsp分页显示的实现代码,有需要的朋友可以参考一下 最近这几天在做JSP留言板设计的过程中,遇到了一个问题.先看一张截图:    这是随便在一个新闻的留言页面截的图,假如留言条数太多,那整个页面得排好长好长,这就直接给用户造成了麻烦.不舒服的感受,所以,解决这个问题,通常采用分页显示的方法.        要把页面显示方式设计成这样的方式,通常需要用到这几个基本变量:pageSize(每个页面所显示的记录数).pageCount(一共有多少个页面).showPage(目前显示

java se-JPane显示多张图片设置滚动条,图片只能显示一部分,代码如下:

问题描述 JPane显示多张图片设置滚动条,图片只能显示一部分,代码如下: package com.jiqixuexi.paper.main; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPane

coredata-表单元在标视图中的位置显示错误

问题描述 表单元在标视图中的位置显示错误 DataModel.h #import "DataModel.h" #import <CoreData/CoreData.h> #import "SettingsEntity.h" #import "Constants.h" @implementation DataModel NSManagedObjectContext *managedObjectContextEntity; NSManag