在做项目时,常需要用到对话框之类的效果,然而对话框不容易写,所以就想写个半透明的Activity来代替对话框效果,这样的好处至少有三个:
一:布局容易
二:各种控件容易控制
三:代码简练:不至于将控制对话框的代码写在一坨,各种控制也不用写在一坨,易于维护
而现在在网上搜索半透明的Activity时,都是需要在style中写样式,在color中定义颜色,当然,最后还得在Mainfest中配置好,结果一个小小的半透明Activity效果写的好零乱,而且网上来来去去就那几种方法,看得蛋疼,因此为了以后的同行的方便,我介绍一种简易的半透明Activity效果:
步骤:
一:在Activity的布局的根标签中写入透明颜色:
android:background="#80000000"
二:在清单文件中相应的activity中配置:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
ok,就这两步,
这样的效果好处在于:
一:简单,就两行代码
二:易修改,就两行代码,只需修改一处即可。
效果图:
详细代码:
一:布局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#80000000" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="40dp" android:layout_marginLeft="18dp" android:layout_marginRight="18dp" android:orientation="vertical" > <TextView android:id="@+id/tv_delete" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/rect_delete_red" android:gravity="center" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="删除" android:textColor="#FFFFFF" android:textSize="20sp" /> <TextView android:id="@+id/tv_cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:background="@drawable/rect_delete_gray" android:gravity="center" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="取消" android:textColor="#FFFFFF" android:textSize="20sp" /> </LinearLayout> </RelativeLayout>
二:清单文件:
<activity android:name="com.itcode.DialogActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" ></activity>