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

 更新时间:2017年10月30日 14:34:44   作者:与我常在i  
这篇文章主要为大家详细介绍了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)布局文件中的代码省略。

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

相关文章

  • Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案

    Android屏幕旋转 处理Activity与AsyncTask的最佳解决方案

    运行时变更就是设备在运行时发生变化(例如屏幕旋转、键盘可用性及语言)。发生这些变化,Android会重启Activity,这时就需要保存activity的状态及与activity相关的任务,以便恢复activity的状态。为此,google提供了三种解决方案,本文将对这三种方案进行逐一介绍。
    2016-12-12
  • Android中利用C++处理Bitmap对象的实现方法

    Android中利用C++处理Bitmap对象的实现方法

    下面小编就为大家带来一篇Android中利用C++处理Bitmap对象的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 一文吃透Hilt自定义与跨壁垒

    一文吃透Hilt自定义与跨壁垒

    这篇文章主要介绍了Hilt自定义与跨壁垒的实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android 使用jQuery实现item点击显示或隐藏的特效的示例

    Android 使用jQuery实现item点击显示或隐藏的特效的示例

    本篇文章主要介绍了Android 使用jQuery实现item点击显示或隐藏的特效的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • android采用FFmpeg实现音视频合成与分离

    android采用FFmpeg实现音视频合成与分离

    这篇文章主要为大家详细介绍了android采用FFmpeg实现音视频合成与分离,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Android简单实现自定义弹框(PopupWindow)

    Android简单实现自定义弹框(PopupWindow)

    本文主要介绍了Android利用PopupWindow实现自定义弹框的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Android View如何测量

    Android View如何测量

    这篇文章主要为大家介绍了Android View如何进行测量,本文为大家介绍view的测量方法,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android相册效果(使用C#和Java分别实现)

    Android相册效果(使用C#和Java分别实现)

    这篇文章主要介绍了Android相册效果(使用C#和Java分别实现),原来C#也可以开发APP,小编第一次见了~感觉不错,因为小编暂时不喜欢Java,所以,需要的朋友可以参考下
    2015-06-06
  • Android 模拟器(emulator-5554...)出现错误解决办法

    Android 模拟器(emulator-5554...)出现错误解决办法

    这篇文章主要介绍了Android 模拟器出现错误解决办法的相关资料,如:Unable to get view server version from device,Failed to install helloworld.apk on device 'emulator-5554': timeout,这种常见错误,解决办法,需要的朋友可以参考下
    2016-11-11
  • Android开发中超好用的正则表达式工具类RegexUtil完整实例

    Android开发中超好用的正则表达式工具类RegexUtil完整实例

    这篇文章主要介绍了Android开发中超好用的正则表达式工具类RegexUtil,结合完整实例形式分析了Android正则表达式常见操作技巧,包括针对证件号、银行账号、手机号、邮编等的正则判断相关操作技巧,需要的朋友可以参考下
    2017-11-11

最新评论