Android实现去哪儿携程地址互换动画效果

1 下载量 124 浏览量 更新于2024-09-04 收藏 264KB PDF 举报
"Android实现去哪儿携程地址互换效果" 在Android开发中,有时我们需要实现类似去哪儿携程应用中的功能,即点击按钮实现出发地和目的地地址的互换效果。这个功能看起来简单,但要达到平滑无闪烁的效果却需要一些技巧。以下是对如何实现这一功能的详细解释。 首先,实现这种效果的关键在于动画的处理。传统的补间动画可能会在交换值时产生闪烁,因此需要采用更复杂的方法。一种可行的方案是通过自定义视图和属性动画来实现。 1. 计算互换位置的偏移量: 为了处理不同长度的文本,我们可以将两个`TextView`放在一个水平的`LinearLayout`内,中间有一个按钮。左右两边的`TextView`被包含在宽度为0dp、权重为1的`RelativeLayout`中,这样它们会根据内容自动调整宽度。当点击互换按钮时,计算两个`TextView`需要移动的偏移量,考虑到可能的文字长度差异。 2. 获取坐标与绘图缓存: 在动画开始前,我们需要获取两个`TextView`的屏幕坐标,并创建它们的绘图缓存。这是为了在动画过程中显示它们的镜像视图。需要注意的是,由于状态栏的存在,Y坐标需要减去状态栏的高度。 3. 创建镜像视图并隐藏原始`TextView`: 隐藏原有的`TextView`,然后利用获得的缓存创建镜像视图,并设置其位置。此时,镜像视图会出现在原`TextView`的位置上,保持视觉连续性。 4. 开启属性动画: 使用`ObjectAnimator`或自定义`ValueAnimator`来执行动画。动画结束后,交换两个`TextView`的值,并重新显示它们。同时,移除镜像视图并释放相关资源,以避免内存泄漏。 代码示例中的关键类可能是`AddressActivity`,它包含了上述操作的实现。在`onCreate()`方法中初始化相关组件,然后在按钮的点击事件中执行上述步骤。代码片段中提到了`TextView`、`Button`、`RelativeLayout`以及`WindowManager`等变量,这些都是实现动画效果所必需的。 实现去哪儿携程地址互换效果涉及了Android布局设计、视图操作、绘图缓存、坐标计算和属性动画等多个技术点。通过巧妙地组合这些技术,可以创建出流畅且用户体验良好的地址互换动画。