高仿微信聊天界面长按弹框样式

效果图

背景

在公司做的项目里面,刚好有需要用到微信聊天界面长按弹框样式这种UI的。

网上找了一下,没找到。

Android现成的 ListPopupWindow又不能满足需求。

因此在非上班时间撸一个出来,供大家使用。

示例代码

关键文件、示例代码及使用方法等我都放到github上了。

这篇文章就不展开说明了。

这篇文章重点说明下怎么把这个样式给撸出来的。

说明一些关键点。

让大家知其然,更加知其所以然。

代码传送门

关键代码解剖

PopupWindow默认宽高设置

我们知道,创建PopupWindow时可以指定显示的宽度和高度。

这边说下代码里面默认的宽高是如何设置的。

默认宽度=设备的宽度/3。

默认高度的设置就比较麻烦一点。

因为高度如果设置过少,可能显示的列表Item数目就会比较少。

如果设置过大,可能显示列表会撑满整个屏幕。

基于此,这边代码设置的默认高度是动态变化的。

变化算法如下:

最大默认高度=设备的高度/2。
列表高度=Item高度*Item数目。
如果列表高度<最大默认高度,默认高度=列表高度。
如果列表高度>最大默认高度,默认高度=最大默认高度。

至于Item高度如何计算,示例代码里面有,这边就不赘余阐释了。

PopupWindow显示位置确定

在说明显示位置之前,我们先来简单说下android的坐标系。

上面的图片简单画了一下,主要是说明

X轴方向,往右边X值变大。
Y轴方向,往下面Y值变大。

这个对于后面显示位置的计算有用。

接下来我们说下显示位置的,既然是一个位置,那么就会有两个维度值。

X轴(水平方向)

Y轴(竖直方向)

除了维度值,还有一个基准点,这里的基准点就是列表的左上角。

为了说明该PopupWindow适应各个位置,所以效果图里面有三个按钮,分别位于左下角,中间,右上角。

X坐标位置确定

由上图我们可以得出结论。

当显示的View在左边时,显示的X坐标=View的中心点X坐标。
当显示的View在右边时,显示的X坐标=View的中心点X坐标-PopupWindow宽度。

Y坐标位置确定

由上图我们可以得出结论。

当显示的View在上边时,显示的Y坐标=View的中心点Y坐标。
当显示的View在下边时,显示的Y坐标=View的中心点Y坐标-PopupWindow高度。

好了,到此高仿微信聊天界面长按弹框样式的代码剖析就结束了。

有任何问题欢迎评论留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251061.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

截图快捷键ctrl加什么

我们使用电脑聊天&#xff0c;玩游戏或者视频&#xff0c;都经常会使用到截图的功能。使用快捷键截图就会很快速简单&#xff0c;下面小编来告诉大家电脑截图快捷键ctrl加什么。希望可以帮助到大家。 截图快捷键ctrl加什么&#xff1a; ps&#xff1a;要使用ctrl的话&#xf…

数睿通2.0数据血缘、标准、质量功能更新发布

文章目录 引言数据血缘数据标准数据质量结语 引言 这段时间工作繁忙&#xff0c;琐事较多&#xff0c;加上二阳的冲击&#xff0c;导致数睿通 2.0 的更新进度缓慢&#xff0c;深表歉意&#xff0c;还望大家可以理解。本次更新主要包含数据治理模块的血缘&#xff0c;标准&…

Linux cp 命令仅复制文件

参考资料&#xff1a; https://unix.stackexchange.com/questions/101916/copy-only-regular-files-from-one-directory-to-another 作为一个经常进行机器学习训练的人&#xff0c;你可能会想给你的训练代码的每一次run都重新创建一个文件夹&#xff0c;此时你可能只想复制一个…

C++实现cp覆盖指令

前言&#xff1a; 想必大家都知道cp这个命令&#xff0c;现在我要给大家分享一个用命令行参数实现的cp覆盖命令 main函数的命令行参数&#xff1a; int main(int argc,char* argv[]) {} 关于argc与argv[ ] 下面这张图可以助你理解 本图来自&#xff1a;https://blog.csdn.…

cp命令详解

用法&#xff1a; cp [选项]... [-T] 源文件 目标文件 或&#xff1a;cp [选项]... 源文件... 目录 或&#xff1a;cp [选项]... -t 目录 源文件... 功能&#xff1a; 将源文件复制至目标文件&#xff0c;或将多个源文件复制至目标目录。 参数&#xff1a; -a或--ar…

cp (复制)命令

用来将一个或多个源文0件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件&#xff0c;当一次复制多个文件时&#xff0c;目标文件参数必须是一个已经存在的目录&#xff0c;否则…

CP命令

cp命令 拷贝文件&#xff0c;cp 【源文件】 【目标文件】&#xff08;拷贝后的文件可直接对其重命名&#xff09; 拷贝目录&#xff0c;cp -r 【源目录】 【目标目录】 拷贝目录是一定要加-r 否则命令不生效。 复制目录时&#xff0c;最好以/结尾。

cp命令用法

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件&#xff0c;当一次复制多个文件时&#xff0c;目标文件参数必须是一个已经存在的目录&#xff0…

复制命令 cp

一、命令详解 1.命令说明 cp是copy的缩写,主要是用来复制文件或者目录。cp命令可以将一个或者多个文件、目录复制到一个制定的文件或目录下&#xff0c;也可以同时复制多个文件到一个指定的目录中。 默认情况&#xff0c;cp会被设置一个别名cp is aliased to cp -i&#xff0c…

2022年适合初学者的Python书籍推荐

一、前言 网上有很多Python书或者视频&#xff0c;种类繁多该怎么选择&#xff1f; 看书全是文字看就了眼睛累&#xff0c;也容易厌倦&#xff0c;看视频有时候又觉得讲的慢&#xff0c;有其他方案吗&#xff1f; 其实&#xff0c;关于自学python&#xff0c;找一本浅显易懂&…

推荐几本Python好书!

大家好&#xff01;我是Sitin涛哥&#xff01; 经常有小伙伴问我推荐Python书籍&#xff0c;每次都零零碎碎的。 今天我整理了一些Python3.x编程相关书籍&#xff0c;从基本概念到完整项目开发&#xff0c;并加以数学辅助&#xff0c;帮助你迅速掌握Python编程&#xff0c;成为…

Python入门必备的书籍推荐

想要自学好Python&#xff0c;搜集资料是最关键的一步&#xff0c;现在在网上有很多的资料、视频和网站可供自学入门者选择。但是想要扎扎实实学好基础&#xff0c;书籍是不可少的一种选择&#xff0c;因为书本上的知识还是跟网上的介绍方法有点不一样的&#xff0c;还有书籍上…

清华教授极力推荐的三本入门学习Python书籍

目录 Python入门书&#xff08;适合初学者&#xff09; Python进阶书&#xff08;适合有基础的&#xff09; Python数据科学&#xff08;适合初学者&#xff09; Python入门书&#xff08;适合初学者&#xff09; 这应该是世界上最畅销的Python编程书&#xff0c;没有之一。…

python进阶书籍的推荐-Python 入门到进阶书籍推荐

入门 1.《像计算机科学家一样思考Python (第2版)》 简单、易懂、量少。“这是一本试图用python最小子集来揭示计算机思想的书。”&#xff0c;建议大家读过一遍后&#xff0c;再“练过”一遍。 计算机图书推荐阅读纸质版&#xff0c;条件不允许的话可在【Python 实用宝典】公…

python经典书籍推荐-7本经典的Python书籍,你都读过了么?

许多程序员都认为Python是最适合作为入门的编程语言,而有的程序员却认为Python是你应该学的最后一门编程语言,无论如何,毋庸置疑Python是一门非常流行的编程语言,根据TIOBE Index,它是目前世界上第三大流行的编程语言,而且它的增长速度还在不断增加。 如果你想学习Python…

20本最好的免费的Python书籍

想要学习Python编程语言的读者有大量相关书籍可供选择&#xff0c;有印刷版也有电子版&#xff0c;而Python是一门开源的编译语言&#xff0c;开发者也提供了不少免费可自由下载的Python电子书。本文挑选其中最优秀的 20本 Python电子书 &#xff0c;内容覆盖了Python的一般…

Python书籍推荐:《Python3标准库》

最近双十一气氛弥漫在整个互联网&#xff0c;不买点东西总觉得缺了什么。在逛某东的时候无意中发现了这本刚出版没多久的书&#xff0c;一时心血来潮立即加入购物车&#xff0c;这不对啊&#xff0c;价格这么贵&#xff0c;而且优惠套路太多了。去当当一看&#xff0c;五折&…

python基础学习的书籍

分享几本python基础学习的书籍给大家 《Python编程&#xff1a;从入门到实践》 《Python编程&#xff1a;从入门到实践》 书籍详情链接 内容简介&#xff1a;本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分&#xff1a;第一部分介绍用Python 编程所必…

2023!七大最佳Python书籍,入门到精通推荐!

前言 什么是Python&#xff1f; Python是一种高级编程语言&#xff0c;用于使用正确的工具和库文件进行Web开发&#xff0c;桌面应用程序&#xff0c;人工智能&#xff0c;OS&#xff0c;原型&#xff0c;GUI应用&#xff0c;图像处理&#xff0c;科学计算。此外&#xff0c;…

12个python超强学习网站!加python书籍推荐!( 入门python自学推荐!建议收藏!)

python学习网站 一、python学习网站1 CSDN2 Python1233 python中文学习大本营4 python开发者社区5 github6 python学习网7 python在线帮助文档8 python3简明教程9 中国大学MOOC10 菜鸟python教程11 W3school教程12 廖雪峰的官方网站 二、python自学书籍推荐(入门)1.《Python编程…