服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

模仿手机 QQ 底部导航栏 Icon 拖拽效果

日期: 来源:JsonChao收集编辑:kobeyxd123

这是 JsonChao 的第 320 期分享

这个效果之前有后台问我怎么实现,终于等到有人分享,开心~~


之前玩手机QQ时发现下面的图标竟然可以拖拽,发现还蛮好玩的。于是自己也模仿着写了一个。


先上个效果图吧




实现的方式有很多,我说一下我的思路:我的思路比较简单,无非就是上下两层图片可拖动的范围和速度不一样呗(大图标拖动范围和速度小于小图标拖动范围和速度)。


备注(以第一个消息图标为例):大图标指的是外面的气泡图标,小图标指的是气泡里面的眼睛和嘴巴图标。切图时将一张整体图片切成了这两个图标。具体可下载Demo参考里面的图片资源。


1

自定义属性



其中range为可拖动的范围(其实是倍数),默认值是1,不宜设置过大。


属性

说明

bigIconSrc

大图标资源

smallIconSrc

小图标资源

iconWidth

图标宽度

iconHeight

图标高度

range

可拖动范围


2

主要的拖动代码



这里先得到X轴拖动的距离deltaX和Y轴拖动的距离deltaY,大图标对应小半径,小图标对应大半径。然后看moveEvent方法:



方法很简单,注释结合这张图就一目了然了,主要是注意在抬起时图标复位就好了。





3

简单看一下初始化


由于图标下面一般会带文字,因此直接继承了LinearLayout,并且默认设置成了垂直排列。



在init方法中进行了布局文件的绑定,并且让该view水平居中。



这里值得注意的是onMeasure方法。由于图标可以往外拖动,所以要给ImageView一个默认的padding,不然拖动时最外面部分会消失。



然后就没啥好说了,直接看源码吧。


如果有其他的实现方式,或者代码中有什么不合理的地方,欢迎交流~


源码地址:

https://github.com/XingdongYu/QQNaviView 

欢迎star,rua~



END



往期推荐



【尊享版】如何从零到一掌控习惯?

【尊享版】那两年沉淀的时间增值心法

Android 往事 —— 暗夜的搏杀

为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary?因为它是真强啊!

Flutter 与 Android 的你来我往


点击下方卡片关注 JsonChao,为你构建一套

大厂青睐的 T 型人才系统



▲ 点击上方卡片关注 JsonChao,构建一套

大厂青睐的 T 型人才知识体系

欢迎把文章分享到朋友圈


很感谢您阅读这篇文章,希望您能将它分享给您的朋友或技术群,这对我意义重大。

你若喜欢,为 JsonChao 点个哦 

相关阅读

  • 关于AppShare换新图标后续

  • 长话短说我也不知道哪个好,所以全都要了各位有啥新的图标可以发给我,我都安排上目前已发ci测试,预计将于本周同步更新到beta版米米(MIUI)在使用黑色图标时有白边,这个不知道咋弄,应
  • CFC:一种功能强大的中心化防火墙控制工具

  • 关于CFC CFC,全称为Centralized Firewall Control,即中心化防火墙控制,该工具给广大研究人员提供了一种中心化的方法来管理运行了iptable的多台服务器或多个负载均衡器上的防
  • 用PowerBI做的华夫图,秒杀Excel

  • 哈喽~我是运营菌。之前分享过用Excel制作这种小图标百分比的图表(华夫图)。又被同学吐槽步骤太复杂了,今天教大家使用Power BI 制作。关于使用Excel制作方法,可以点击下方图表回
  • 召回!超9万辆!赶紧自查

  • 国家市场监督管理总局官网2月24日发布召回通知,涉宝马、福特猛禽等品牌。华晨宝马汽车有限公司、宝马(中国)汽车贸易有限公司召回部分国产及进口宝马汽车日前,华晨宝马汽车有限
  • 紧急召回,涉及陕西!

  • 近期,市场监管总局组织食品安全监督抽检,抽取通过网络平台或线下实体店销售的粮食加工品、餐饮食品、食糖、茶叶及相关制品、乳制品、饮料、酒类、糕点、炒货食品及坚果制品
  • 春风送岗 家门口就业

  • 怀化市2023年“春风行动”在全市范围内全面展开,通过系列暖心举措,为求职者提供精准的就业服务。
  • 存在安全隐患,超9万辆车被召回!

  • 华晨宝马汽车有限公司、宝马(中国)汽车贸易有限公司召回部分国产及进口宝马汽车日前,华晨宝马汽车有限公司、宝马(中国)汽车贸易有限公司根据《缺陷汽车产品召回管理条例》和《缺

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 模仿手机 QQ 底部导航栏 Icon 拖拽效果

  • 这是 JsonChao 的第 320 期分享这个效果之前有后台问我怎么实现,终于等到有人分享,开心~~之前玩手机QQ时发现下面的图标竟然可以拖拽,发现还蛮好玩的。于是自己也模仿着写了一
  • 安得广厦千万间

  • 这是 JsonChao 的第 321 期分享作为买房走过不少弯路的人,给后面的人一些经验。交通与环境看房首先要考虑的是你的交通问题,其次是居住环境,当然,这个优先级并不是绝对的。如果
  • 【尊享版】如何系统构建你的思维认知模型?

  • 这是 JsonChao 的第 322 期分享超友们,早上好,国庆节快乐~今天为你带来的分享是《如何系统构建你的思维认知模型?》,主要分为三个部分:第一部分:【实现爆发式成长的 10 个思维模型
  • 为什么 finalize() 方法只会执行一次?

  • 这是 JsonChao 的第 323 期分享前言Java Finalizer 机制提供了一个在对象被回收之前释放占用资源的时机,但是都说 Finalizer 机制是不稳定且危险的,不推荐使用,这是为什么呢?今
  • Flutter 系列(三):Flutter 特点及常用 Widget 介绍

  • 这是 JsonChao 的第 324 期分享前言很高兴遇见你~在本系列的上一篇文章中,我们全面介绍了 Dart 语法,内容很多,文字+代码有三万多字,如果你能够耐心看完并手敲里面的示例,你一定
  • 送你几个用起来很爽的 Studio 插件

  • Android 反编译初探 应用是如何被注入广告的这是 JsonChao 的第 325 期分享本篇文章的环境:MAC + Android Studio 2.3.31 Alibaba Java Coding Guidelines首先是安装插件:Andr