Android基础:关于Dialog和Activity的style的深入理解

 <!-- 微博 -->
    <style name="weibosdk_ContentOverlay" parent="android:style/Theme.Dialog">
        <item name="android:windowNoTitle">true</item> 没有标题
        <item name="android:windowIsTranslucent">true</item> 透明
        <item name="android:windowBackground">@color/weibosdk_transparent</item> 窗口背景色
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> 重要,Dialog进出的显示动画
        <item name="android:windowContentOverlay">@null</item> 是否有覆盖
        <item name="android:backgroundDimEnabled">false</item> dialog的背景是否昏暗
    </style>

 以上是自定义Dialgog可以使用自定义样式:

关于<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> 重要,Dialog进出的显示动画要特别注意,可以自定义Dialog进出的动画,但是item的名字必须和下面的一样,以确定Android系统能够认识出来。

<style name="Animation.Translucent">
        <item name="windowEnterAnimation">@anim/translucent_enter</item>
        <item name="windowExitAnimation">@anim/translucent_exit</item>
    </style>

 ----------------------------------------------

Activity 自定义样式:

   <style name="ThemeActivity">
        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>

 同样的每个item对应的name不能变,以保证Android系统能够辨认出来。

<style name="AnimationActivity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/slideinright</item> 第一次创建新Activity是调用的动画
        <item name="android:activityCloseExitAnimation">@anim/slideoutright</item> 调用finish关闭该Activity是调用的动画
        <item name="android:activityOpenExitAnimation">@anim/slideoutleft</item>   activity还没有finish()下退出效果 
        <item name="android:activityCloseEnterAnimation">@anim/slideinleft</item>  上一个activity返回进入效果  

</style>

 

posted @ 2012-12-12 19:17  demoblog  阅读(15114)  评论(0编辑  收藏  举报