创建圆角Dialog风格的Activity

一、前言:

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

二、实现

1. 1.创建样式

在res/values/styles.xml中

1<style name="DialogActivityStyle" parent="Theme.AppCompat.Light.Dialog"> 2 <!--设置dialog的背景--> 3 <item name="android:windowBackground">@android:color/transparent</item> 4 <!--设置Dialog的windowFrame框为无--> 5 <item name="android:windowFrame">@null</item> 6 <!--设置无标题--> 7 <item name="android:windowNoTitle">true</item> 8 <item name="android:title">@null</item> 9 <item name="windowNoTitle">true</item> 10 <item name="android:dialogTitle">@null</item> 11 <!--是否浮现在activity之上--> 12 <item name="android:windowIsFloating">true</item> 13 <!--是否半透明--> 14 <item name="android:windowIsTranslucent">true</item> 15 <!--设置窗口内容不覆盖--> 16 <item name="android:windowContentOverlay">@null</item> 17 <!--设置动画--> 18 <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 19 <!--背景是否模糊显示--> 20 <item name="android:backgroundDimEnabled">true</item> 21 <!--点击外部是否退出-> 22 <item name="android:windowCloseOnTouchOutside">false</item> 23 </style>

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

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

2. 设置圆角

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

1<?xml version="1.0" encoding="utf-8"?> 2<shape xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <solid android:color="@android:color/white" /> 5 6 <corners android:radius="10dp" /> 7 8 <padding 9 android:bottom="10dp" 10 android:left="10dp" 11 android:right="10dp" 12 android:top="10dp" /> 13 14</shape>

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

1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="200dp" 4 android:layout_height="200dp" 5 android:background="@drawable/dialog_background"> 6 7 <TextView 8 android:layout_width="match_parent" 9 android:layout_height="match_parent" 10 android:gravity="center" 11 android:text="我亦只有一个一生 不能慷慨赠与我不爱的人" /> 12 13</LinearLayout>

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

1public class MyActivity extends Activity { 2 3@Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 //设置为true点击区域外消失 7 setFinishOnTouchOutside(true); 8 setContentView(R.layout.activity_layout); 9 } 10}

4. 效果

image


点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid