在Android中經常會遇到需要使用Dialog風格彈出框的activity,首先我們可能會首先想到的是在XML布局檔案中設定android:layout_height="wrap_content"屬性,讓activity的高度自適應,顯然這還不行,我們還需要為其DialogActivity設定自訂一個樣式
<style name="dialogstyle"> <!--設定dialog的背景--> <item name="android:windowBackground">@android:color/transparent</item> <!--設定Dialog的windowFrame框為無--> <item name="android:windowFrame">@null</item> <!--設定無標題--> <item name="android:windowNoTitle">true</item> <!--是否浮現在activity之上--> <item name="android:windowIsFloating">true</item> <!--是否半透明--> <item name="android:windowIsTranslucent">true</item> <!--設定視窗內容不覆蓋--> <item name="android:windowContentOverlay">@null</item> <!--設定動畫,在這裡使用讓它繼承系統的Animation.Dialog--> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <!--背景是否模糊顯示--> <item name="android:backgroundDimEnabled">true</item> </style>
然後在AndroidManifest.xml中設定DialogActivity的樣式為我們自訂的dialogstyle
如下是布局的代碼
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="65dp" android:orientation="horizontal" android:paddingLeft="@dimen/acitvity_margin" android:paddingRight="@dimen/acitvity_margin"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:text="上班時間:" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> <Button android:id="@+id/tv_signin_time" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@color/white" android:gravity="center" android:text="9:00" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:text="下班時間:" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> <Button android:id="@+id/tv_signout_time" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@color/white" android:gravity="center" android:text="18:00" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> </LinearLayout> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="65dp" android:paddingLeft="@dimen/acitvity_margin" android:paddingRight="@dimen/acitvity_margin"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:gravity="center" android:text="公司位置:" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> <EditText android:id="@+id/et_address" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="2dp" android:layout_toRightOf="@+id/tv_address" android:background="@color/white" android:hint="請輸入公司位置" android:singleLine="true" android:textSize="@dimen/size_text_small" /> <TextView android:id="@+id/tv_location" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:gravity="center" android:padding="5dp" android:text="重新置放" android:textColor="@color/blue" android:textSize="@dimen/size_text_medium" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="65dp" android:paddingLeft="@dimen/acitvity_margin" android:paddingRight="@dimen/acitvity_margin"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:gravity="center" android:text="設定管理員:" android:textColor="@color/grey" android:textSize="@dimen/size_text_medium" /> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:gravity="center" android:src="@mipmap/icon_toright" /> </RelativeLayout></LinearLayout>
接下來我們再看一下效果圖是不是我們想要的呢
源碼下載:http://xiazai.jb51.net/201609/yuanma/DialogActivity(jb51.net).rar
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。