Android如何创建背景透明的Dialog

简介:


一:控制Dialog 的背景方法:1.定义一个无背景主题主题<!--去掉背景Dialog-->

<style name="NobackDialog" 
parent="@android:style/Theme.Dialog">
<item 
name="android:windowBackground">@color/no_back</item>
</style>

2.创建Dialog
dialog = new Dialog(this,R.style.dialog);
dialog.setContentView(R.layout.dialog_loading);
or:
dialog = new Dialog(this,R.style.NobackDialog);
LayoutInflater mInflater = LayoutInflater.from(this);
View dialogProcessBar = 
mInflater.inflate(R.layout.dialog_loading,null);
dialog.setView(dialogProcessBar,0, 0, 0, 0);

二:控制Dialog 以及内部控件的背景方法:
dialog = new Dialog(this,R.style.dialog);
WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
// 模糊度getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
dialog.getWindow().setAttributes(lp);
lp.alpha=0.5f;(0.0-1.0)//透明度,黑暗度为lp.dimAmount=1.0f;
三:去掉边框、title 等参数
<resources>
<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">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item>

<item 
name="android:background">@android:color/black</item>
<item name="android:windowBackground">@null</item>
<item 
name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>
</resources>
复制代码

android Dialog去掉标题栏 和边框

首先在 values/Style.xml文件中加入以下代码(如果没有该文件就创建一个XML名为Style.xml)

<!--重写系统弹出Dialog -->
     < style  name="myDialogTheme" parent="android:Theme.Dialog">
         < item  name="android:windowFrame">@null</ item >
         < item  name="android:windowIsFloating">true</ item >
         < item  name="android:windowIsTranslucent">false</ item >
         < item  name="android:windowNoTitle">true</ item > <!--除去title-->
         < item  name="android:windowContentOverlay">@null</ item >
         < item  name="android:backgroundDimEnabled">false</ item >
         < item  name="android:windowBackground">@null</ item > <!--除去背景色-->
</ style >

去掉背景色边框也就去掉了,在你的层中设置背景色就可以了  

第二步在AndroidManifest.xml中在你注册activity中加入android:theme="@style/myDialogTheme" 这个名就是上面的样式名称

<activity android:name=".LoginDialog" android:theme="@style/myDialogTheme" android:screenOrientation="portrait"/>

弹出层方法

 Intent intent=new Intent(Detail_Goods.this,LoginDialog.class);
startActivity(intent);



本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4912363.html,如需转载请自行联系原作者


相关文章
|
7月前
|
Java Maven Android开发
Android弹出dialog提示框演示
Android弹出dialog提示框演示
59 1
|
7月前
|
Android开发
Android Studio APP开发入门之对话框Dialog的讲解及使用(附源码 包括提醒对话框,日期对话框,时间对话框)
Android Studio APP开发入门之对话框Dialog的讲解及使用(附源码 包括提醒对话框,日期对话框,时间对话框)
172 0
|
5月前
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
147 12
|
6月前
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
163 7
|
7月前
|
Java Android开发 Kotlin
Android Dialog 弹出时,隐藏 navigation bar
Android Dialog 弹出时,隐藏 navigation bar
135 1
|
7月前
|
XML API Android开发
Android 自定义View 之 Dialog弹窗
Android 自定义View 之 Dialog弹窗
255 0
|
Android开发
Android的Dialog弹出时隐藏导航栏效果,目前认为的最优解
Android的Dialog弹出时隐藏导航栏效果,目前认为的最优解
|
Java Android开发
【安卓开发】Dialog对话框的学习和使用
【安卓开发】Dialog对话框的学习和使用
215 0
【安卓开发】Dialog对话框的学习和使用
|
Android开发
Android BottomSheetDialog设置背景透明无效?(解决)
Android BottomSheetDialog设置背景透明无效?(解决)
413 0
Android BottomSheetDialog设置背景透明无效?(解决)
|
Android开发
android activity方式的dialog
android activity方式的dialog
183 0
android activity方式的dialog