Android:Dialog和Activity的style的深入理解及对话框透明
来源:互联网 发布:星星知多少迷你世界 编辑:程序博客网 时间:2024/06/10 10:46
<style name="DialogCustomTest" parent="android:style/Theme.Dialog">
<!-- 边框 -->
<item name="android:windowFrame">@null</item >
<!-- 没有标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 背景透明 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 对话框的内容窗口背景色:让整个对话框的背景为透明-->
<item name="android:windowBackground">@color/all_transparent</item>
<!-- 整个屏幕背景是透明的 -->
<!-- <item name="android:background">@android:color/transparent</item> -->
<!-- 整个屏幕背景的灰度值:默认是黑色的 :遮障层的灰度-->
<!-- <item name="android:backgroundDimAmount">0.5</item> -->
<!-- dialog的整个屏幕的背景是否有遮障层 当设置这个最后时,上边两行不起作用-->
<item name="android:backgroundDimEnabled">false</item>
<!-- 重要,Dialog进出的显示动画 -->
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
<!-- 是否有覆盖 -->
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="dialog" parent="@android:style/Theme.Dialog" >
<item name="android:windowFrame"> @null </item><!-- 边框 -->
<item name="android:windowIsFloating"> true </item><!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item><!-- 半透明 -->
<item name="android:windowNoTitle">true</item><!-- 无标题 -->
<item name="android:windowBackground">@drawable/bg</item><!-- 对话框的背景-->
<item name="android:backgroundDimEnabled">false</item><!-- 模糊 -->
</style>
<style name="transparent" parent="android:Theme">
<item name="android:windowBackground">@drawable/bg</item><!-- 此对话框的背景 -->
<item name="android:windowIsTranslucent">true</item><!-- 对话框是否透明 -->
<item name="android:windowContentOverlay">@null</item><!-- 对话框是否有遮盖 -->
<item name="android:windowNoTitle">true</item><!-- 对话框无标题 -->
<item name="android:windowIsFloating">true</item><!-- 对话框是否浮动 -->
<item name="android:backgroundDimEnabled">false</item>
</style>
样式:转自:http://www.cnblogs.com/0616--ataozhijia/archive/2012/12/12/2815224.html
以上是自定义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> <span style=
"background-color: #00ff00;"
>第一次创建新Activity是调用的动画
</span> <item name=
"android:activityCloseExitAnimation"
>
@anim
/slideoutright</item> <span style=
"background-color: #00ff00;"
>调用finish关闭该Activity是调用的动画
</span> <item name=
"android:activityOpenExitAnimation"
>
@anim
/slideoutleft</item> <span style=
"background-color: #00ff00;"
>activity还没有finish()下退出效果</span>
<item name=
"android:activityCloseEnterAnimation"
>
@anim
/slideinleft</item> <span style=
"background-color: #00ff00;"
> 上一个activity返回进入效果
</span><br> </style>
转自:http://www.cnblogs.com/0616--ataozhijia/archive/2012/12/12/2815224.html
转自:http://blog.csdn.net/ooo4561213/article/details/6654961
首先自定义一个类,j继承自dialog类。
设置透明度,主要设置的是dialog自身的透明度
- WindowManager.LayoutParams lp=getWindow().getAttributes();
- lp.alpha=1.0f;
- getWindow().setAttributes(lp);
- WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
- lp.alpha=1.0f;
- dialog.getWindow().setAttributes(lp);
alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明,自身不可见。
设置幕布,也就是本dialog的背景层。
- WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- lp.dimAmount=1.0f;
- getWindow().setAttributes(lp);
- dialog.setContentView(R.layout.dialog);
- WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
- lp.dimAmount=1.0f;
- dialog.getWindow().setAttributes(lp);
- dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dimAmount在0.0f和1.0f之间,0.0f完全不暗,即背景是可见的 ,1.0f时候,背景全部变黑暗。
如果要达到背景全部变暗的效果,需要设置 dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
,否则,背景无效果。
此方法可以用来设置浮动层。呵呵!
例子:
public void createDialog(Context context){
Dialog dialog = new Dialog(context,R.style.transparent);
View view = LayoutInflater.from(context).inflate(R.layout.dialog_test_item, null);
dialog.setContentView(view);
WindowManager.LayoutParams a = dialog.getWindow().getAttributes();
a.gravity = Gravity.TOP;//设置对话框显示的位置
a.dimAmount = 0.0f; // 去背景遮盖:即背景不会遮盖activity的内容
a.alpha = 0.7f;//window 透明度
dialog.getWindow().setAttributes(a);
dialog.show();
dialog.setOnCancelListener(null);//关闭对话框
}
- Android:Dialog和Activity的style的深入理解及对话框透明
- Android 透明的Dialog对话框
- 【Android】透明的Dialog和透明的Activity
- (转)Android有趣的全透明效果--Activity及Dialog的全透明
- Android有趣的全透明效果--Activity及Dialog的全透明(转载)
- Android有趣的全透明效果--Activity及Dialog的全透明2(转载)
- Android有趣的全透明效果--Activity及Dialog的全透明3(转载)
- Android应用的全透明效果--Activity及Dialog的全透明
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全)
- Activity及Dialog的全透明(附android系统自带图标大全)
- Android设置Activity背景为透明style发生的错误
- Android做一个透明的Activity,设置Activity背景为透明style
- 透明对话框式的Activity
- 一个只能在堆产生对象的类实现
- spring定时任务
- 关于数组类型的json解析方法
- JavaScript入门:004—JS注释的写法和基本运算符
- SuperSale - UVa 10130 01背包
- Android:Dialog和Activity的style的深入理解及对话框透明
- 【map<s,i>&getline】#STC 2 A. Indian Summer
- bzoj3407 [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题
- java中关于Integer.parseInt(),Integer.valueOf(),Ingeger.getInteger()方法的不同
- HttpURLConnection获取网络图片
- c语言实现动态指针数组Dynamic arrays
- struts2学习笔记一
- 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数
- 关于session_cached_cursors的在不同db版本下的不同默认值