Android用动画显示或隐藏视图
程序员文章站
2022-06-09 19:57:39
目录一、需求背景二、创建淡入淡出动画1.创建布局文件2.设置淡入淡出动画3.代码实现总结一、需求背景有时候,我们需要在屏幕上显示新的信息,同时移除旧的信息,一般情况下我们通过visibility或者g...
一、需求背景
有时候,我们需要在屏幕上显示新的信息,同时移除旧的信息,一般情况下我们通过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动画内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: PHP:MVC迷思
推荐阅读
-
AngularJS中实现显示或隐藏动画效果的方式总结
-
Android实现动态显示或隐藏密码输入框的内容
-
Android 检测键盘显示或隐藏键盘的实现代码
-
【Android】【动画】设置控件显示隐藏,添加删除动画
-
Android—Adapter适配器数据调用列表或视图显示
-
Android用动画显示或隐藏视图
-
AngularJS中实现显示或隐藏动画效果的方式总结
-
用RadioButten或CheckBox实现div的显示与隐藏_javascript技巧
-
用RadioButten或CheckBox实现div的显示与隐藏_javascript技巧
-
Android View的显示隐藏(上下左右移动动画)