安卓仿手机QQ消息BadgeView气泡跟随手指移动,并实现进出动画效果。
来源:互联网 发布:淘宝特价群怎么赚钱 编辑:程序博客网 时间:2024/04/25 17:03
欢迎加安卓开发交流群:308372687(博主尽可能帮助大家)#安卓仿手机QQ消息BadgeView气泡,跟随手指移动,并实现进出动画效果。
欢迎加安卓开发交流群:308372687(博主尽可能帮助大家)
转载请注明来源
代码连接
http://download.csdn.net/detail/androidmsky/9276547
首先展示一下程序效果,这个效果跟qq的气泡移动略有不同,在这里msky只是给大家提供一个思路,有了这个思路相信大家都可以通过自己的代码去实现各种各样的效果。
重点难点罗列
1.如何使用开源框架BadgeView
2.如何定义进入进出动画
3.如何让BadgeView气泡跟随手指移动
1.如何使用开源框架BadgeView
BadgeView这个框架,是帮助安卓程序员实现在一个View上动态地添加另一个View。此框架常常用于实现消息的推送显示,QQ聊天信息、微信的朋友圈等。该框架目前已比较成熟,大家可以阅读相关文档。下面是我们这个程序中使用BadgeView的一段代码:
BadgeView badge4; badge4 = new BadgeView(this, m1ImageView); badge4.setText("12"); badge4.setBadgePosition(BadgeView.POSITION_TOP_LEFT); badge4.setBadgeMargin(30); badge4.setBadgeBackgroundColor(Color.parseColor("#A4C639"));
2.如何定义进入进出动画
BadgeView.toggle(anim, anim2);这个方法即可接受进入进出动画,大家可以灵活定义。如果对属性动画掌握熟练的朋友,也可用属性动画来实现,会更加自由灵活,当然代码量也会比较大。在这里只是用了两个简单的系统动画。
//定义进入动画 anim = new TranslateAnimation(-100, 0, 0, 0); //设定运动加速度 anim.setInterpolator(new BounceInterpolator()); anim.setDuration(1000); //定义消失动画 anim2 = new TranslateAnimation(0, -1500, 0, 0); anim2.setDuration(500); //调用方法 badge4.toggle(anim, anim2);
3.如何让BadgeView气泡跟随手指移动
只要给View注册OnTouchListener,就可以监听手指的DOWN、MOVE 、UP等手势。切记在注册OnTouchListener之前必须给View注册OnClickListener,否则OnTouchListener将无效。
public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: xd = event.getRawX(); yd = event.getRawY(); break; case MotionEvent.ACTION_MOVE: xm = (int) (event.getRawX() - xd); ym = (int) (event.getRawY() - yd); // 计算出位置的变化 int l = v.getLeft() + xm; int b = v.getBottom() + ym; int r = v.getRight() + xm; int t = v.getTop() + ym; // 下面判断移动是否超出屏幕 if (l < 0) { l = 0; r = l + v.getWidth(); } if (t < 0) { t = 0; b = t + v.getHeight(); } // 更新位置 v.layout(l, t, r, b); xd = event.getRawX(); yd = event.getRawY(); v.postInvalidate(); break; case MotionEvent.ACTION_UP: badge4.toggle(anim, anim2); break; default: break; } return false; }
总结:
框架的使用简单,跟随手指移动稍微复杂,大家仔细看注释,相信都能读懂。看了本文之后你是不是也可以设计出更好的气泡效果了呢。
在这里就不附加所有代码了,需要的朋友可以点击链接下载。
后面会更新很多很好的安卓技术博客。我是安卓天,感谢大家支持。希望大家多多沟通交流。
欢迎加安卓开发交流群:308372687(博主尽可能帮助大家)
代码连接
http://download.csdn.net/detail/androidmsky/9276547
- 安卓仿手机QQ消息BadgeView气泡跟随手指移动,并实现进出动画效果。
- 实现跟随手指移动的小球
- 实现跟随手指移动的小球
- 在一个Activity页面中View跟随手指移动,并且能实现点击效果
- Android最简单的实现View拖拽跟随手指移动效果
- 实现QQ聊天气泡效果
- 跟随手指移动小球
- button跟随手指移动
- 小球跟随手指移动
- 仿QQ消息气泡拖拽效果
- 实现宠物跟随移动效果
- 实现类似QQ气泡消息的样式
- Sprite添加触摸监听(实现跟随手指移动)
- 自定义圆形View:实现跟随手指移动的小球
- 类似QQ拖动气泡删除消息的气泡实现
- BezierDemo源码解析-实现qq消息气泡拖拽消失的效果
- Java Swing实现的仿QQ气泡消息聊天窗口效果
- 贝塞尔曲线实现QQ未读消息气泡拖拽效果
- MySQL · 特性分析 · Statement Digest
- 深入解析LoadRunner下的参数化取值
- mat最新下载地址
- ubuntu14.04下安装BCM4312无线网卡驱动
- 封装的UITextField
- 安卓仿手机QQ消息BadgeView气泡跟随手指移动,并实现进出动画效果。
- sicily 1107. Simple Puzzle
- C#循环练习
- hadoop常用命令
- Python内存池管理与缓冲池设计
- PostMessage()给winform窗口发送信息
- ecmobile,EC_PATH未定義,init.php加載失敗,解決方案
- poj 3790 Recursively Palindromic Partitions dp水题
- 乐视手机的奇葩事