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

如何检测ListPopupWindow显示在锚视图的上方还是下方?

要检测ListPopupWindow显示在锚视图的上方还是下方,可以通过以下步骤进行:

  1. 获取锚视图的屏幕坐标:使用getLocationOnScreen()方法获取锚视图在屏幕上的坐标。
  2. 获取屏幕的高度:使用getDisplayMetrics()方法获取屏幕的高度。
  3. 计算锚视图的中心点坐标:将锚视图的屏幕坐标与锚视图的高度相加,得到锚视图的中心点坐标。
  4. 计算ListPopupWindow的高度:使用getHeight()方法获取ListPopupWindow的高度。
  5. 判断ListPopupWindow的显示位置:比较锚视图的中心点坐标与屏幕高度的一半,如果中心点坐标小于屏幕高度的一半,则ListPopupWindow显示在锚视图的下方;反之,显示在锚视图的上方。

以下是一个示例代码:

代码语言:java
复制
ListPopupWindow listPopupWindow = new ListPopupWindow(context);
// 设置ListPopupWindow的适配器和内容

View anchorView = findViewById(R.id.anchor_view);
int[] anchorLocation = new int[2];
anchorView.getLocationOnScreen(anchorLocation);

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenHeight = displayMetrics.heightPixels;

int anchorCenterY = anchorLocation[1] + anchorView.getHeight();
int listPopupWindowHeight = listPopupWindow.getHeight();

if (anchorCenterY < screenHeight / 2) {
    // ListPopupWindow显示在锚视图的下方
    listPopupWindow.setAnchorView(anchorView);
    listPopupWindow.show();
} else {
    // ListPopupWindow显示在锚视图的上方
    listPopupWindow.setAnchorView(anchorView);
    listPopupWindow.setVerticalOffset(-listPopupWindowHeight);
    listPopupWindow.show();
}

在腾讯云的产品中,可以使用腾讯云移动推送(https://cloud.tencent.com/product/umeng)来实现消息推送功能,通过向移动设备发送通知,可以在锚视图上方或下方显示相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Center-based 3D Object Detection and Tracking

    三维物体通常表示为点云中的三维框。 这种表示模拟了经过充分研究的基于图像的2D边界框检测,但也带来了额外的挑战。 3D世界中的目标不遵循任何特定的方向,基于框的检测器很难枚举所有方向或将轴对齐的边界框匹配到旋转的目标。 在本文中,我们提出用点来表示、检测和跟踪三维物体。 我们的框架CenterPoint,首先使用关键点检测器检测目标的中心,然后回归到其他属性,包括3D尺寸、3D方向和速度。 在第二阶段,它使用目标上的额外点特征来改进这些估计。 在CenterPoint中,三维目标跟踪简化为贪婪最近点匹配。 由此产生的检测和跟踪算法简单、高效、有效。 CenterPoint在nuScenes基准测试中实现了最先进的3D检测和跟踪性能,单个模型的NDS和AMOTA分别为65.5和63.8。 在Waymo开放数据集上,Center-Point的表现远远超过了之前所有的单一模型方法,在所有仅使用激光雷达的提交中排名第一。

    01

    Android开发笔记(三十六)展示类控件

    View是单个视图,所有的控件类都是从它派生出来;而ViewGroup是个视图组织,所有的布局视图类都是从它派生出来。由于View和ViewGroup是基类,因此很少会直接使用,偶尔用到的场景,主要有如下几个: 1、页面上需要单独显示一条横线或者竖线。如果填充图片显然不够经济,最简单的做法,就是在xml布局中增加一个View控件,高度或宽度设置为1dp,背景颜色设置为线条颜色,这样便实现了单独显示线条的需求。 2、点击事件的处理函数onClick(View v),这里面我们要调用View的getId方法获取发生点击事件的控件id,从而进行该控件对应的点击处理。 3、在代码中设置某控件为可见或不可见或消失,此时需要使用View类的三个变量,分别是View.VISIBLE、View.INVISIBLE和View.GONE。

    03

    Feature Selective Anchor-Free Module for Single-Shot Object Detection

    提出了一种简单有效的单阶段目标检测模块——特征选择无锚定(FSAF)模块。它可以插入到具有特征金字塔结构的单阶段检测器中。FSAF模块解决了传统基于锚点检测的两个局限性:1)启发式引导的特征选择;2)基于覆盖锚取样。FSAF模块的总体思想是将在线特征选择应用于多水平无锚分支的训练。具体来说,一个无锚的分支被附加到特征金字塔的每一层,允许在任意一层以无锚的方式进行盒编码和解码。在训练过程中,我们动态地将每个实例分配到最合适的特性级别。在推理时,FSAF模块可以通过并行输出预测与基于锚的分支联合工作。我们用无锚分支的简单实现和在线特性选择策略来实例化这个概念。在COCO检测轨道上的实验结果表明,我们的FSAF模块性能优于基于锚固的同类模块,而且速度更快。当与基于锚点的分支联合工作时,FSAF模块在各种设置下显著地改进了基线视网膜网,同时引入了几乎自由的推理开销。由此产生的最佳模型可以实现最先进的44.6%的映射,超过现有的COCO单单阶段检测器。

    02

    Single-Shot Refinement Neural Network for Object Detection

    对于目标检测,两阶段方法(如Faster R-CNN)的准确率最高,而单阶段方法(如SSD)的效率较高。为了在继承两种方法优点的同时克服它们的缺点,本文提出了一种新的单阶段检测器,称为RefineDet,它比两阶段方法具有更好的精度,并保持了与单阶段方法相当的效率。RefineDet由两个相互连接的模块组成,即锚点细化模块和目标检测模块。具体来说,前者的目的是(1)过滤掉负锚点,减少分类器的搜索空间,(2)粗调锚点的位置和大小,为后续回归器提供更好的初始化。后一个模块以改进后的锚为输入,进一步改进回归,预测多类标签。同时,我们设计了一个传输连接块来传输锚点细化模块中的特征,以预测目标检测模块中目标的位置、大小和类标签。多任务丢失功能使我们能够以端到端方式训练整个网络。在PASCAL VOC 2007、PASCAL VOC 2012和MS COCO上的大量实验表明,RefineDet能够以高效的方式实现最先进的检测精度。

    01

    FCOS: Fully Convolutional One-Stage Object Detection

    我们提出一种全卷积的单阶段目标检测器(FCOS),以逐像素预测的方式解决目标检测问题,类似于语义分割。几乎所有最先进的目标探测器,如RetinaNet、SSD、YOLOv3和Faster R-CNN,都依赖于预定义的锚盒。相比之下,我们提出的探测器FCOS是Anchor Free,以及proposal自由。通过消除预定义的锚盒集合,FCOS完全避免了与锚盒相关的复杂计算,例如在训练过程中计算IoU。更重要的是,我们还避免了所有与锚盒相关的超参数,这些超参数通常对最终检测性能非常敏感。通过唯一的后处理非最大抑制(NMS),使用ResNeXt-64x4d-101的FCOS在单模型和单尺度测试下,AP达到44.7%,超越了以往单阶段检测器。我们首次演示了一个更简单、更灵活的检测框架,从而提高了检测精度。我们希望所提出的FCOS框架可以作为许多其他实例级任务的简单而强大的替代方案。

    02

    Unbiased Teacher v2: Semi-supervised Object Detection for Anchor-free and Anchor-based Detectors

    随着最近半监督目标检测(SS-OD)技术的发展,目标检测器可以通过使用有限的标记数据和丰富的未标记数据来改进。然而,仍有两个挑战没有解决:(1)在无锚检测器上没有先期的SS-OD工作,(2)在伪标签边界框回归时,先期工作是无效的。在本文中,我们提出了Unbiased Teacher v2,它显示了SS-OD方法在无锚检测器上的通用性,同时也为无监督回归损失引入了Listen2Student机制。特别是,我们首先提出了一项研究,检查现有的SS-OD方法在无锚检测器上的有效性,发现它们在半监督环境下取得的性能改进要低得多。我们还观察到,在半监督环境下,无锚检测器中使用的带 centerness 的框选择和基于定位的标签不能很好地工作。另一方面,我们的Listen2Student机制明确地防止在训练边界框回归时出现误导性的伪标签。边界框回归的训练中明确防止误导性的伪标签;我们特别开发了一种新的伪标签选择机制,该机制基于教师和学生的相对不确定性。和学生的相对不确定性为基础的新型伪标签选择机制。这一想法有助于在半监督环境下对回归分支进行了有利的改进。我们的方法,既适用于我们的方法适用于无锚和基于锚的方法,在VOC、 COCO-standard和COCO-additional中一直优于最先进的方法。

    02

    Semi-supervised learning-based satellite remote sensing object detection method for power transmissi

    众所周知,随着电网的日益复杂,传统的输电塔人工测量方法已经失效,无法满足安全稳定运行的要求。尽管卫星遥感技术的发展为输电塔的高效稳定测量提供了新的前景,但仍有许多问题需要解决。由于恶劣的气候和成像设备的限制,遥感图像中的一些输电塔目标是模糊的,这使得生成数据集和实现高精度输电塔目标检测变得极其困难。为了进一步提高发射塔的检测精度,首次将基于暗通道先验的图像增强算法应用于遥感图像,提高了图像的可解释性。然后,考虑到增强图像中仍有一些传输塔无法手动标记,采用了一种基于伪标记的半监督学习方法来最大限度地利用现有数据。基于这一高质量的数据集,利用移动倒瓶颈卷积和可变形卷积构建了一个传输塔卫星遥感目标检测模型。最后,根据我国某地区的卫星遥感图像数据集进行了烧蚀和对比实验。实验结果表明,图像增强和半监督学习方法都能提高检测精度,与现有主流模型相比,该方法性能更好。

    01

    离岗识别 yolov5

    离岗识别算法模型通过yolov5网络模型技术,离岗识别可以自动识别现场画面中人员离岗等行为,发现违规行为立即抓拍告警。YOLO5系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类与目标定位的回归问题结合起来,从而做到了高效、灵活和泛化性能好,所以在工业界也十分受欢迎,接下来我们介绍YOLO 系列算法。Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是创造性的将候选区和目标分类合二为一,看一眼图片就能知道有哪些对象以及它们的位置。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。

    00

    Double FCOS: A Two-Stage Model UtilizingFCOS for Vehicle Detection in VariousRemote Sensing Scenes

    在各种遥感场景中进行车辆检测是一项具有挑战性的任务。各种遥感场景与多场景、多质量、多尺度和多类别的图像混杂在一起。车辆检测模型存在候选框不足、正建议采样弱和分类性能差的问题,导致其应用于各种场景时检测性能下降。更糟糕的是,没有这样一个覆盖各种场景的数据集,用于车辆检测。本文提出了一种称为双完全卷积一阶段目标检测(FCOS)的车辆检测模型和一个称为多场景、多质量、多尺度和多类别车辆数据集(4MVD)的车辆数据集,用于各种遥感场景中的车辆检测。双FCOS是一种基于FCOS的两阶段检测模型。在RPN阶段利用FCOS生成各种场景中的候选框。精心设计了两阶段正样本和负样本模型,以增强正建议采样效果,特别是在FCOS中忽略的微小或弱车辆。在RCNN阶段设计了一个两步分类模型,包括建议分类分支和点分类分支,以提高各种类型车辆之间的分类性能。4MVD是从各种遥感场景中收集的,用于评估双FCOS的性能。4MVD上的双FCOS对五类车辆检测的平均准确率为78.3%。大量实验表明,双FCOS显著提高了各种遥感场景下的车辆检测性能。

    03

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    最先进的目标检测网络依赖于区域建议算法来假设目标位置。SPPnet和Faster R-CNN等技术的进步,降低了检测网络的运行时间,但是暴露了区域提案计算的瓶颈。在这项工作中,我们引入了一个与检测网络共享全图像卷积特性的区域建议网络(RPN),从而实现了几乎免费的区域建议。RPN是一个完全卷积的网络,它同时预测每个位置的目标边界和目标得分。对RPN进行端到端训练,生成高质量的区域建议,Faster R-CNN对其进行检测。通过共享卷积特性,我们进一步将RPN和Faster R-CNN合并成一个单独的网络——使用最近流行的具有“Attention”机制的神经网络术语,RPN组件告诉统一的网络去哪里看。对于非常深的VGG-16型号,我们的检测系统在GPU上帧率为5帧(包括所有步骤),同时在PASCAL VOC 2007、2012和MS COCO数据集上实现了最先进的目标检测精度,每张图像只有300个proposal。在ILSVRC和COCO 2015年的比赛中,Faster R-CNN和RPN是在多个赛道上获得第一名的基础。

    02
    领券