在Android應用開發中,使用系統案頭背景作為應用的背景,需要把應用的背景設定為透明背景,然後設定視窗的屬性為FLAG_SHOW_WALLPAPER即可顯示背景。
修改AndroidManifest.xml檔案裡面activity屬性:
<activity android:name=".WallPaperTest"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent">
然後在使用的時候,在onCreate裡面添加一個視窗屬性
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);
在背景拖動的時候主要是使用了WallpaperManager這個類的兩個方法
public void setWallpaperOffsetSteps
(float xStep, float yStep)Since:
API Level 7
For applications that use multiple virtual screens showing a wallpaper, specify the step size between virtual screens. For example, if the launcher has 3 virtual screens, it would specify an xStep of 0.5, since the X offset for those screens are 0.0, 0.5
and 1.0
Parameters
xStep |
The X offset delta from one screen to the next one |
yStep |
The Y offset delta from one screen to the next one |
public void setWallpaperOffsets
(IBinder windowToken, float xOffset, float yOffset)Since:
API Level 5
Set the position of the current wallpaper within any larger space, when that wallpaper is visible behind the given window. The X and Y offsets are floating point numbers ranging from 0 to 1, representing where the wallpaper should be positioned within the
screen space. These only make sense when the wallpaper is larger than the screen.
Parameters
windowToken |
The window who these offsets should be associated with, as returned by View.getWindowToken() . |
xOffset |
The offset along the X dimension, from 0 to 1. |
yOffset |
The offset along the Y dimension, from 0 to 1. http://blog.csdn.net/yao_guet/article/details/6572739 |