Android中创建圆角的DialogActivity

myboxcpy 8年前
   <p><em>摘要</em> 在安卓开发中我们多多少少都会使用到DialogActivity,但是系统自带的效果往往不尽如人意,一般都是下面这种效果,所以我们在使用时都会很蛋疼,最近在做项目需要用到圆角的DialogActivity,所以就参考网上资料,做了一个自己风格的圆角DialogActivit。</p>    <p> </p>    <h2>前言</h2>    <p>在安卓开发中我们多多少少都会使用到DialogActivity,但是系统自带的效果往往不尽如人意,一般都是下面这种效果,所以我们在使用时都会很蛋疼,最近在做项目需要用到圆角的DialogActivity,所以就参考网上资料,做了一个自己风格的圆角DialogActivit。</p>    <p><img src="https://simg.open-open.com/show/517b2be5e298a81a0fe978f8cd7efb98.png"></p>    <h2>示例图</h2>    <p>示例图如下,是不是很有苹果风呢?其实在这个基础上大家可以定制成自己风格的DialogActivity</p>    <p><img src="https://simg.open-open.com/show/538130c875eb2e0e57b0eba9227212e6.png"></p>    <h2>实现</h2>    <p>1.首先设置DialogActivity最外层的的layout背景为一个自定义背景,自定义背景如下:</p>    <p>dialog_theme.xml</p>    <pre>  <code class="language-xml"><?xml version="1.0" encoding="utf-8"?>  <shape xmlns:android="http://schemas.android.com/apk/res/android" >        <!-- 填充颜色 -->      <solid android:color="#ffffffff" />        <!-- 边框宽度 -->      <!-- <stroke android:width="3dp" /> -->          <!-- 圆角半径 -->      <corners android:radius="10dp" />        <!-- 内边距 -->      <padding          android:bottom="13dp"          android:left="13dp"          android:right="13dp"          android:top="13dp" />    </shape></code></pre>    <p>2.然后自定义Activity的style为如下:</p>    <pre>  <code class="language-xml"><style name="DialogTheme" parent="@android:style/Theme.Dialog">        <!-- 边框 -->      <item name="android:windowFrame">@null</item>      <!-- 是否浮现在activity之上 -->      <item name="android:windowIsFloating">true</item>      <!-- 半透明 -->      <item name="android:windowIsTranslucent">false</item>      <!-- 无标题 -->      <item name="android:windowNoTitle">true</item>      <!-- 背景透明 -->      <item name="android:windowBackground">@android:color/transparent</item>      <!-- 模糊 -->      <item name="android:backgroundDimEnabled">false</item>  </style></code></pre>    <h2>Demo</h2>    <p>1.Demo效果图</p>    <p><img src="https://simg.open-open.com/show/8cd58ef49b048592ab0fda68c79470bd.gif"></p>    <p>2.代码地址 <a href="/misc/goto?guid=4959672355043694238" rel="nofollow,noindex">https://github.com/ryanlijianchang/DialogActivityDemo</a></p>    <p>来源:http://my.oschina.net/ryaneLee/blog/670120?fromerr=5WHvlXG6</p>