创建圆角Dialog风格的Activity

浪人 等级 970 0 0

一、前言:

在开发中有时我们需要用到dialog,可是系统提供的dialog有时不能满足我们的要求,比如显示位置等,不够灵活,我们这时可以创建activity,使其风格和dialog一样。

二、实现

1. 1.创建样式

在res/values/styles.xml中

<style name="DialogActivityStyle" parent="Theme.AppCompat.Light.Dialog">
        <!--设置dialog的背景-->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!--设置Dialog的windowFrame框为无-->
        <item name="android:windowFrame">@null</item>
        <!--设置无标题-->
        <item name="android:windowNoTitle">true</item>
        <item name="android:title">@null</item>
        <item name="windowNoTitle">true</item>
        <item name="android:dialogTitle">@null</item>
        <!--是否浮现在activity之上-->
        <item name="android:windowIsFloating">true</item>
        <!--是否半透明-->
        <item name="android:windowIsTranslucent">true</item>
        <!--设置窗口内容不覆盖-->
        <item name="android:windowContentOverlay">@null</item>
        <!--设置动画-->
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <!--背景是否模糊显示-->
        <item name="android:backgroundDimEnabled">true</item>
       <!--点击外部是否退出->
       <item name="android:windowCloseOnTouchOutside">false</item>
    </style> 

然后将主题设置给相应的activity
在AndroidManifest中

 <activity android:name=".DialogActivity"
            android:theme="@style/DialogActivityStyle"/> 

2. 设置圆角

在res/drawable文件夹下新建dialog_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="@android:color/white" />

    <corners android:radius="10dp" />

    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape> 

将此背景设置给所需要的圆角Activity最外层布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="@drawable/dialog_background">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="我亦只有一个一生 不能慷慨赠与我不爱的人" />

</LinearLayout> 

3. 在Activity中设置点击区域外消失属性;

public  class MyActivity extends Activity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
    //设置为true点击区域外消失
   setFinishOnTouchOutside(true); 
   setContentView(R.layout.activity_layout);
  }
} 

4. 效果

创建圆角Dialog风格的Activity

image


收藏
评论区

相关推荐

element-ui Dialog组件的close-on-click-modal属性
element组件库的Dialog对话框默认可以通过点击 modal 关闭 Dialog,即点击空白处弹框可关闭。 单功能设置如下: <eldialog :closeonclickmodal"false" </eldialog 全局修改默认配置,点击空白处不能关闭弹窗: //在组件注册.js文件中 Dialog.props.cl
创建圆角Dialog风格的Activity
一、前言:在开发中有时我们需要用到dialog,可是系统提供的dialog有时不能满足我们的要求,比如显示位置等,不够灵活,我们这时可以创建activity,使其风格和dialog一样。二、实现 1\. 1.创建样式在res/values/styles.xml中<style name"DialogActivityStyle"
JBolt开发平台入门(14)
项目中,单表操作CURD,一个界面里,有增删改查的操作,有分页,有个Table显示数据,有按钮点击操作就行了。 **常见的样式:** ![常见样式](https://oscimg.oschina.net/oscnet/77df450476a512e6343cf793955c218e1f4.jpg) 除了单表操作管理,还有一些业务是主从表管理,一个主表对
Activity启动模式
当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置。 1\. Standard模式(默认) 我们平时直接创建的Activity都是这种模式的
Activity的启动方式和flag详解
**Activity的4种状态:** **活动的**:当一个Activity在栈顶,它是可视的、有焦点、可接受用户输入的。Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用。当另外一个Activity被激活,这个将会被暂停。 **暂停**:在很多情况下,你的Activity可视但是它没有焦
Android DialogFragment(1)
**Android DialogFragment(1)** 和过去的AlertDialog类似,Android引入的DialogFragment旨在为开发者提供一个“富”dialog,而不必受到过去Android AlertDialog的局限。首先,DialogFragment是一个Fragment,它有Fragment的一切属性和生命周期,其次,
034 Android NavigationView和DrawerLayout实现抽屉式导航设计(侧边栏效果)
**1.创建带侧滑效果的activity** ![](https://oscimg.oschina.net/oscnet/333199cfe89b2025778b04b97a9ec41f2d7.png) 右击,new---->activity---->选择NavgationDrawer Activity **2.xml文件布局** (1)activi
034 Android NavigationView和DrawerLayout实现抽屉式导航设计(侧边栏效果)
**1.创建带侧滑效果的activity** ![](https://oscimg.oschina.net/oscnet/333199cfe89b2025778b04b97a9ec41f2d7.png) 右击,new---->activity---->选择NavgationDrawer Activity **2.xml文件布局** (1)activi
Android 使用intent传递返回值:startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回
在一个父Activity通过intent跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回父页面,将子activity中得到的数据显示在主界面/完成的数据交给父Activity处理。这种带数据的intent跳转需要使用activity的onActivityResult()方法。 **(1)startActivityForResult([
Android 经典笔记七 全局弹窗Dialog
##目录介绍 * 1.全局弹窗分析 * 2.全局弹窗必要条件 * 3.全局弹窗实现方式 3.1. 利用系统弹出dialog 3.2. 获取WindowManager,直接添加view 3.3. 在服务里,获取栈顶的Activity,弹窗 * 4.Dialog实现全局Loading加载框 4.1. 自定义Loading类 4.2. 给自定义的
Android 自定义对话框
public class CustomDilaog { private Context context; private Dialog dialog; public CustomDilaog(Context context) { this.conte
Android 设置Dalog大小
注意:设置Dialog大小的代码,必须放在setContentView代码后面。否则设置无效。   Dialog processDialog=new Dialog(this);   TextView txt = new TextView(this);   txt.setText("hello");   processDial
Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)
先放效果截图 项目中需要有个Dialog全选对话框,点击全选全部选中,取消全选全部取消。下午查了些资料,重写了一下Dialog对话框。把代码放出来。 ![这里写图片描述](https://oscimg.oschina.net/oscnet/0231bb305ff838c957875702a8373cf7c26.gif) public class M
ElementUI dialog嵌套蒙层遮挡问题
dialog嵌套会有蒙层遮挡问题,我们加两个属性解决他 <el-dialog :close-on-click-modal="false" title="选择图片" custom-class="imgSelectDialog" :visible.sync="imgSelectDialog" @close="closeHandler" v-drag
Flutter 意见输入框
![](https://oscimg.oschina.net/oscnet/up-41f6087ad210009ad3110fc27ff0fb1d.png) Screenshot\_1612840493.png 要实现一个这样对话框。难点是什么? ##### 难点 自定义一个Widget 继承Dialog class SongSheetIn