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>