http://blog.csdn.net/xieyihua1994/article/details/52586270
我們知道Activity本身是沒有界面的。所以activity類創建了一個窗口,開發人員可以通過setContentView(View)接口把UI放到activity創建的窗口上。所以,我們控制窗口的大小,就可以控制界面的大小。
如何設置Activity的大小,讓你的窗口看起來不再是全屏的。有些網友可能知道通過主題比如Theme.Dialog來實現,不過今天Android123告訴大家設置Activity不再全屏顯示的原理。Android Theme也主要是通過定義Style來實現的,實現的原理大家可以直接看Android Framework中的定義,今天給一種更簡單,但相對靈活的方法,比如不要Theme.Dialog中的邊框,下面就一起來看下自定義Activity大小的實現方法。
1. 創建一個樣式文件到你的工程,保存在在res/values/styles.xml,這里文件名不能隨便修改,內容為,注意保存時使用UTF-8編碼。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Android123" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/bg</item>
</style>
</resources>
2. 上面我們定義的主題風格為Theme.Android123,父風格仍然從Theme.Dialog實現,但我們自定義了背景,位置在drawable/bg中,這里我們創建一個bg.xml文件放到res/drawable文件夾中,bg.xml的內容為
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.android.com/apk/res/android">
<padding android:left="15dp" android:top="15dp" android:right="15dp" android:bottom="15dp" />
<stroke android:width="3dip" color="#000000" />
<corners android:radius="5dp" />
<solid android:color="#ffffff" />
</shape>
里面我們定義了一個shape對象,實現背景drawable形狀,其中padding代表距離邊框,這里我們設置了左、上、右、下四個位置的間距。stroke可以制造出一些3D立體效果,corners是四個角,radisu屬性可以設置半徑,值越大越圓滑,根據運行效果你可以微調,最后soild是填充顏色,這里我們用了ffffff表示純白。
3. 最后在androidmanifest.xml中,在你的activity節點加一個 android:theme屬性,值為@style/Theme.Android123 即可。
1. 創建一個樣式文件到你的工程,保存在在res/values/styles.xml,這里文件名不能隨便修改,內容為,注意保存時使用UTF-8編碼。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Android123" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/bg</item>
</style>
</resources>
2. 上面我們定義的主題風格為Theme.Android123,父風格仍然從Theme.Dialog實現,但我們自定義了背景,位置在drawable/bg中,這里我們創建一個bg.xml文件放到res/drawable文件夾中,bg.xml的內容為
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.android.com/apk/res/android">
<padding android:left="15dp" android:top="15dp" android:right="15dp" android:bottom="15dp" />
<stroke android:width="3dip" color="#000000" />
<corners android:radius="5dp" />
<solid android:color="#ffffff" />
</shape>
里面我們定義了一個shape對象,實現背景drawable形狀,其中padding代表距離邊框,這里我們設置了左、上、右、下四個位置的間距。stroke可以制造出一些3D立體效果,corners是四個角,radisu屬性可以設置半徑,值越大越圓滑,根據運行效果你可以微調,最后soild是填充顏色,這里我們用了ffffff表示純白。
3. 最后在androidmanifest.xml中,在你的activity節點加一個 android:theme屬性,值為@style/Theme.Android123 即可。