安卓显示或隐藏控件时附带动画效果

前言

控件可以通过 setVisibility 方法进行显示和隐藏。默认情况下没有动画效果,直接显示和隐藏有时候显得比较生硬。

带有动画效果的显示和隐藏更加优雅,例如在阅读小说时,点击小说弹出设置时,会伴随着滑动的动画。本文就通过这个例子来进行说明,先上效果图:

实现

下面说下如何实现。

在 xml 中创建动画

首先在 res 文件夹中新建 anim 文件夹,然后编写要实现的动画。

对于上面的动画效果,需要分别定义底部弹出动画和顶部弹出动画:

bottom_enter.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="250"
        android:toYDelta="0%"
        android:fillAfter="true"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromYDelta="100%" />
</set>

top_enter.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="250"
        android:toYDelta="0%"
        android:fillAfter="true"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromYDelta="-100%" />
</set>

说明一下,fromYDelta 和 toYDelta 中的百分数是相对于控件自身的比例,它是相对于控件自身的位置,所以 toYDelta 都是 0%,也就是回到它本来的位置,而正负代表了方向。

在代码中使用

下面的操作是点击 Button 后发生的:

    Animation topAnim = AnimationUtils.loadAnimation(
            TestActivity.this, R.anim.read_setting_top_enter);
    Animation bottomAnim = AnimationUtils.loadAnimation(
            TestActivity.this, R.anim.read_setting_bottom_enter);
    mTopView.startAnimation(topAnim);
    mBottomView.setAnimation(bottomAnim);
    mTopView.setVisibility(View.VISIBLE);
    mBottomView.setVisibility(View.VISIBLE);

一开始控件是隐藏的,在显示控件前,给控件添加动画,那么它的显示就带有动画效果了。

写在最后

本文主要通过一个例子说明了如何在显示控件时带有动画效果。在隐藏控件时,同样可以带有动画效果,思路和显示时一样,在动画结束后隐藏控件即可,这里就不啰嗦了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值