Android中的Activity有沒有類似於像Windows程序樣的窗口式顯示呢?
答案當然是有。
下圖就是一個窗口式Activity的效果圖:
下面就說說實現過程:
首先看看AndroidManifest.xml
1: <?xml version="1.0" encoding="utf-8"?>
2: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3: package="com.hi.braincol.local"
4: android:versionCode="1"
5: android:versionName="1.0">
6: <uses-sdk android:minSdkVersion="8" />
7:
8: <application android:icon="@drawable/icon" android:label="@string/app_name">
9: <activity android:name=".MiniActivity"
10: android:theme="@style/Translucent"
11: android:label="@string/app_name">
12: <intent-filter>
13: <action android:name="android.intent.action.MAIN" />
14: <category android:name="android.intent.category.LAUNCHER" />
15: </intent-filter>
16: </activity>
17:
18: </application>
19: </manifest>
第10行:
android:theme="@style/Translucent"
這個就是關鍵,只要將個這個style設置為窗口式的,那么MiniActivity就會是窗口式的了。
下面的就是這個style的代碼:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="Translucent" parent="@android:style/Theme.Translucent">
<item name="android:windowBackground">@drawable/panel_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
</resources>
這樣就行了,實現起來還是很簡單的
。

http://www.cnblogs.com/hibraincol/archive/2011/08/28/2156310.html
在做項目時,常需要用到對話框之類的效果,然而對話框不容易寫,所以就想寫個半透明的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>