文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android怎么用动画显示或隐藏视图

2023-06-26 06:42

关注

这篇文章主要介绍“Android怎么用动画显示或隐藏视图”,在日常操作中,相信很多人在Android怎么用动画显示或隐藏视图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android怎么用动画显示或隐藏视图”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、需求背景

有时候,我们需要在屏幕上显示新的信息,同时移除旧的信息,一般情况下我们通过VISIBILITY或者GONE来对需要显示或者隐藏的视图进行设置,这样做的坏处是显示或者隐藏的动作变化非常突兀,而且有时候变化很快导致用户无法注意到这些变化。这时就可以使用动画显示或者隐藏视图,通常情况下使用圆形揭露动画,淡入淡出动画或者卡片反转动画。

二、创建淡入淡出动画

淡入淡出动画会逐渐淡出一个View或者ViewGroup,同时淡入另一个。此动画适合在应用中切换内容或者视图的情况。这里使用ViewPropertyAnimator来创建这种动画。

下面的动画是从进度指示器切换到某些内容文字的淡入淡出示例。

1.创建布局文件

<androidx.constraintlayout.widget.ConstraintLayout          android:layout_width="match_parent"          android:layout_height="wrap_content">      <!--淡入淡出动画-->      <Button              android:id="@+id/btn_use_fade_in_fade_out_animator"              android:layout_width="0dp"              android:layout_height="wrap_content"              android:layout_marginHorizontal="10dp"              android:onClick="doClick"              android:text="@string/use_fade_in_fade_out_animator"              app:layout_constraintLeft_toLeftOf="parent"              app:layout_constraintRight_toRightOf="parent"              app:layout_constraintTop_toTopOf="parent" />      <androidx.constraintlayout.widget.ConstraintLayout              android:layout_width="0dp"              android:layout_height="0dp"              app:layout_constraintDimensionRatio="w,1:1"              app:layout_constraintLeft_toLeftOf="parent"              app:layout_constraintRight_toRightOf="parent"              app:layout_constraintTop_toBottomOf="@id/btn_use_fade_in_fade_out_animator">          <TextView                  android:id="@+id/tv_content"                  android:layout_width="0dp"                  android:layout_height="0dp"                  android:padding="16dp"                  android:text="@string/test_use_fade_in_fade_out_animator_text"                  android:visibility="gone"                  app:layout_constraintBottom_toBottomOf="parent"                  app:layout_constraintLeft_toLeftOf="parent"                  app:layout_constraintRight_toRightOf="parent"                  app:layout_constraintTop_toTopOf="parent" />          <!--进度条-->          <ProgressBar                  android:id="@+id/loading_progress"                                    android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  app:layout_constraintBottom_toBottomOf="parent"                  app:layout_constraintLeft_toLeftOf="parent"                  app:layout_constraintRight_toRightOf="parent"                  app:layout_constraintTop_toTopOf="parent" />      </androidx.constraintlayout.widget.ConstraintLayout>  </androidx.constraintlayout.widget.ConstraintLayout>

2.设置淡入淡出动画

对于需要淡入的动画,首先将其可见性设置为GONE,这一点在布局文件中已经设置。在需要显示淡入的View的时候,首先将其alpha设置为0,这样可以保证View已经显示但是不可见。分别设置淡入的动画和淡出的动画,淡入的动画将其所在的View的alpha属性从0变化到1,淡出的动画将其所在的View的alpha属性从1变化到0对于淡出动画,在动画执行完成后,将其的可见性设置为GONE,从而加快处理速度。

3.代码实现

//开始执行淡入淡出动画    private fun crossFade() {        //设置需要淡入的View的alpha为0,可见性为VISIBLE        mBinding.tvContent.apply {            alpha = 0f            visibility = View.VISIBLE            //通过动画将透明度变为1.0            animate()                .alpha(1.0f)                .setDuration(mShortAnimationDuration.toLong())                .start()        }        //设置需要淡出的动画,将其alpha从1变为0,并通过监听动画执行事件,在动画结束后将View的可见性设置为GONE        mBinding.loadingProgress.animate()            .alpha(0f)            .setDuration(mShortAnimationDuration.toLong())            .setListener(object : AnimatorListenerAdapter() {                override fun onAnimationEnd(animation: Animator?) {                    super.onAnimationEnd(animation)                    mBinding.loadingProgress.visibility = View.GONE                }            })            .start()    }

到此,关于“Android怎么用动画显示或隐藏视图”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯