开发之际,必要的弹框提示是不可少的,Dialog就是其一,那弹框赏心悦目,才不会引起用户的反感。下面是总结的一下方法。开始之前,先了解几个属性。
<style name="PerfectDialog" parent="android:Theme.Dialog">
<item name="android:windowIsFloating">true</item>//是否浮现在activity之上
<item name="android:windowIsTranslucent">false</item>//是否半透明
<item name="android:windowNoTitle">true</item>//是否显示title标题
<item name="android:windowFrame">@null</item>//设置windowFrame框
<item name="android:windowFullscreen">false</item>//是否全屏显示
<item name="android:windowBackground">@android:color/transparent</item>//设置dialog的背景
<item name="android:windowAnimationStyle">@style/DialogAnims</item>//设置窗口动画效果
<item name="android:backgroundDimEnabled">true</item>//背景是否变暗
<item name="android:backgroundDimAmount">0.5</item>//设置背景变暗程度
</style>
<style name="DialogAnims">
<item name="android:windowEnterAnimation">@anim/enter</item>//进入动画
<item name="android:windowExitAnimation">@anim/exit</item>//退出动画
</style>
每个属性的意义都有说明,不再赘述。
下面是enter与exit的动画:
enter.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="90"
android:fromAlpha="0"
android:toAlpha="1"/>
<scale
android:duration="135"
android:fromXScale="0.8"
android:toXScale="1.05"
android:fromYScale="0.8"
android:toYScale="1.05"
android:pivotX="50%"
android:pivotY="50%"/>
<scale
android:duration="105"
android:fromXScale="1.05"
android:toXScale="0.95"
android:fromYScale="1.05"
android:toYScale="0.95"
android:startOffset="135"
android:pivotX="50%"
android:pivotY="50%"/>
<scale
android:duration="135"
android:fromXScale="0.95"
android:toXScale="1"
android:fromYScale="0.95"
android:toYScale="1"
android:startOffset="240"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
exit.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="200"
android:fromAlpha="1"
android:toAlpha="0"/>
<scale
android:duration="200"
android:fromXScale="1"
android:toXScale="0.1"
android:fromYScale="1"
android:toYScale="0.1"
android:pivotX="50%"
android:pivotY="50%"/>
</set>
使用方法:
Dialog dialog = new Dialog(this,R.style.PerfectDialog);
dialog .setContentView(R.layout.perfect_dialog);
dialog.show();