Android仿QQ抖一抖
在Android应用开发中,"Android仿QQ抖一抖"是一个常见的动态效果,它模拟了QQ应用中的消息通知提示方式,即当有新消息到来时,应用程序窗口会进行轻微的抖动,以吸引用户的注意力。这个功能可以提升用户体验,使得用户在不查看通知栏的情况下也能感知到新消息的到来。下面我们将深入探讨如何在Android 4.1.2环境下实现这一功能。 我们需要了解Android的动画系统。在Android中,动画分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。由于Android 4.1.2使用的是属性动画系统,因此我们也将基于此来实现抖动效果。 1. **属性动画介绍**: 属性动画是Android 3.0(API level 11)引入的新特性,它可以改变对象的任意属性并随着时间的推移产生动画效果。与视图动画不同,属性动画不仅改变视觉效果,还会真正改变对象的状态。 2. **实现抖动效果的步骤**: - **创建动画资源文件**:在res/anim目录下创建一个XML文件,例如`shake.xml`,定义动画的细节。在这个文件中,我们可以定义一系列平移动画,使视图在x轴或y轴上进行往复运动。 ``` <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%p" android:toXDelta="5%p" android:pivotX="50%p" android:pivotY="50%p" android:duration="100"/> <translate android:fromXDelta="5%p" android:toXDelta="-5%p" android:pivotX="50%p" android:pivotY="50%p" android:startOffset="100" android:duration="100"/> </set> ``` 这个XML文件定义了两个平移动画,第一个将视图向右移动5%的距离,第二个再向左移动同样距离。`startOffset`属性确保第二个动画在第一个动画结束后立即开始。 - **加载并应用动画**:在需要抖动的视图或者布局上,通过`AnimationUtils.loadAnimation()`方法加载XML动画资源,然后调用`startAnimation()`方法来启动动画。 ```java Animation shake = AnimationUtils.loadAnimation(context, R.anim.shake); view.startAnimation(shake); ``` 3. **控制抖动次数**:如果想让视图抖动多次,可以使用`animation.setRepeatCount(int repeatCount)`设置重复次数。设置为-1表示无限循环,直到显式停止。 4. **结束动画**:为了防止动画无限循环,可以在合适的时机调用`animation.cancel()`或`animation.reset()`来停止动画。 5. **监听动画状态**:通过实现`Animation.AnimationListener`接口并添加到动画中,可以监听动画的开始、结束和重复事件,以便进行相应的逻辑处理。 6. **优化性能**:在实际应用中,为了避免频繁的动画操作影响性能,可以考虑使用`ObjectAnimator`替代`Animation`类,它提供了更高效且易于使用的API。 通过以上步骤,我们就能够在Android 4.1.2环境中实现类似QQ的窗口抖动效果。这只是一个基本的实现,根据实际需求,还可以调整动画的持续时间、抖动幅度、重复次数等参数,以达到更加逼真的效果。同时,抖动效果也可以应用于其他场景,比如按钮点击反馈、错误提示等,为用户提供更加直观和有趣的交互体验。
- 1
- qq_165507592015-09-16不可以使用,写的都不完整,这还要积分坑
- lewisyou9992015-09-08可以使用,说的高大上,其实很简单
- 粉丝: 15
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助