当前位置:首页 > 谈天说地

Android用动画显示或隐藏视图

34资源网2022-01-17567
目录
  • 一、需求背景
  • 二、创建淡入淡出动画
    • 1.创建布局文件
    • 2.设置淡入淡出动画
    • 3.代码实现
  • 总结

    一、需求背景

    有时候,我们需要在屏幕上显示新的信息,同时移除旧的信息,一般情况下我们通过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"
                      style="?android:progressbarstylelarge"
                      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用动画显示或隐藏视图的文章就介绍到这了,更多相关android动画内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!

    看完文章,还可以扫描下面的二维码下载快手极速版领4元红包

    快手极速版二维码

    快手极速版新人见面礼

    除了扫码领红包之外,大家还可以在快手极速版做签到,看视频,做任务,参与抽奖,邀请好友赚钱)。

    邀请两个好友奖最高196元,如下图所示:

    快手极速版邀请好友奖励

    扫描二维码推送至手机访问。

    版权声明:本文由34楼发布,如需转载请注明出处。

    本文链接:https://www.34l.com/post/5687.html

    分享给朋友:

    相关文章

    全职妈妈自己创业干点什么好?适合全职妈妈创业的项目分享

    全职妈妈自己创业干点什么好?适合全职妈妈创业的项目分享

    作为全职妈妈的你肯定还在担心家里的开支问题吧?因为生活压力太大,很多全职妈妈想着在家照顾孩子的同时想通过自己的努力创业。那么,全职妈妈自己创业干点什么好呢?下面,小编整理了四个适合全职妈妈创业的项目,大家一起来看看吧。…

    苹果X快充PD充电器推荐,现在下载还有优惠券可以领呢

    苹果X快充PD充电器推荐,现在下载还有优惠券可以领呢

    现在有很多人用的是苹果手机,因为平时有些人不注意使用方式或者使用充电器比较频繁导致损坏。大家都知道苹果手机和安卓手机的充电器是不一样的,不能用安卓手机的充电器充苹果手机。所以,大家如果苹果手机充电器损坏了,需要购买的话就要买个专门的苹果手机…

    抖音黄v认证有什么好处(抖音流量高的是蓝v和黄v)

    抖音黄v认证有什么好处(抖音流量高的是蓝v和黄v)

    我将要在这里告诉你们关于抖音号橱窗蓝v抖音小店所有的知识,认真看完。…

    视频号加粉多少会被推荐?视频号制作方法分享

    视频号加粉多少会被推荐?视频号制作方法分享

    今天下午,视频号突然暂停申请,让原本打算在视频号大干一场的运营者们感到懵圈。不过据业内人士透露,此次暂停并“不会太久”,很快就会再次上线。…

    抖音上热门技巧有哪些(dou+投粉丝量还是点赞量)

    抖音上热门技巧有哪些(dou+投粉丝量还是点赞量)

    前不久,“越来和锅锅”发布了自己的第一条抖音视频,结果该视频一天的播放量达到了2581万,至今获赞205.7万。可见,选择适合自己的视频表现方式比努力更重要。 (图片来源:抖音APP) 抖音如何上热门,一直是小伙伴们想要了解的答案。 如果…

    软件解压后怎么安装(手机解压软件app免费软件)

    软件解压后怎么安装(手机解压软件app免费软件)

    在PC端宅男、极客们会碰到需要解压缩文件的情况,这个时候大多会用到360压缩或者好压等第三方软件,然而到了移动手机端,由于自带的文件管理器大多不支持输入密码解压缩等复杂操作,让不少人对于手机解压缩文件失望,但是有时候电脑不在身边,又不得不在…