Dialog 的淡进效果
应用场景之一:
Dilaog显示后要显示一些数据,而这些数据可能来自缓存、本地文件或者网络,需要一定的加载时间,大概3秒左右,这个时候我们就可以加一个淡进的效果,增强体验感。刚才说的那个加载时间不能太长,你想想,如果一个淡进过程超过4秒,这体验就不完美了。
实现步骤:
1) 在res/anim目录下创建dialog_in_animator,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1800"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
这里的意思是从完全透明到完全不透明的时间长为1800毫秒。
2) 在Dialog类里定义一个Animation变量Animation anim_in,并在它的构造函数里赋值:
anim_in = AnimationUtils.loadAnimation(mContext, R.anim.epg_dialog_in);
3) 在Dialog的show函数里启动淡进效果:
View dialog_root = ((ViewGroup) getWindow().getDecorView().getRootView()).getChildAt(0);
if (anim_in != null) {
dialog_root.startAnimation(anim_in);
}
The End