android 悬浮按钮横向收起动画
时间: 2024-10-31 09:07:44 浏览: 12
Android仿知乎悬浮功能按钮FloatingActionButton效果
Android悬浮按钮的横向收起动画通常是在屏幕滑动切换页面或者菜单收缩时使用的视觉效果。这种动画通常是通过View的`animate()`方法和`TranslationX`属性结合`AnimatorSet`来实现的。以下是简单的步骤:
1. 首先,在布局文件中设置悬浮按钮的初始位置和尺寸,并将其设为可变化(比如`android:layout_width="wrap_content"`)。
```xml
<Button
android:id="@+id/side_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:translationX="0dp" <!-- 初始位置 -->
android:alpha="1.0" <!-- 初始透明度 -->
/>
```
2. 创建一个动画资源文件(`.animator`),例如`slide_out_horizontal.xml`:
```xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="250" <!-- 动画持续时间 -->
android:fromXDelta="0%" <!-- 开始位置 -->
android:toXDelta="-100%" <!-- 结束位置,向左移动到完全消失 -->
android:interpolator="@android:anim/decelerate_interpolator" />
<alpha
android:duration="250" <!-- 动画持续时间 -->
android:fromAlpha="1.0" <!-- 开始透明度 -->
android:toAlpha="0.0" /> <!-- 结束透明度,变得不可见 -->
</set>
```
3. 在需要触发动画的地方(如`onSlideOut()`函数),使用`startAnimation()`:
```java
Button sideButton = findViewById(R.id.side_button);
sideButton.startAnimation(R.animator.slide_out_horizontal);
```
4. 如果需要在动画结束时执行某个回调,可以添加一个`AnimatorListener`:
```java
sideButton.startAnimation(R.animator.slide_out_horizontal)
.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {}
@Override
public void onAnimationEnd(Animator animation) {
// 动画结束后处理逻辑,如隐藏相关的界面元素
}
@Override
public void onAnimationCancel(Animator animation) {}
@Override
public void onAnimationRepeat(Animator animation) {}
});
```
阅读全文