2011-05-10 78 views
1

我有一個livewallpaper,我想我的壁紙只能在肖像模式下工作。我可以做嗎?livewallpaper問題中的肖像模式?

<application 
     android:label="@string/wallpaper_name" 
     android:debuggable="true" 
     android:screenOrientation="portrait" 
     android:icon="@drawable/icon"> 
     <service 
      android:label="@string/wallpaper" 
      android:name=".LiveWallpaper" 
      android:permission="android.permission.BIND_WALLPAPER"> 
      <intent-filter> 
       <action android:name="android.service.wallpaper.WallpaperService" /> 
      </intent-filter> 
      <meta-data 
       android:name="android.service.wallpaper" 
       android:resource="@xml/weather_wallpaper" /> 
     </service> 
</application> 

我試試這個,但它不起作用,因爲在應用程序標籤中沒有android:screenOrientation。

回答

2

我對你的問題有點疑惑:默認情況下,動態壁紙通常在縱向模式下保持鎖定狀態,以對應默認啓動器的行爲。你是否說在旋轉手機時,你的壁紙自動轉換到橫向模式?如果是這樣,請告訴我們:
1)旋轉手機時,手機附帶的動態壁紙(SDK,Polar Clock,Grass,Cube等)是否會轉換爲橫向模式?
2)你在使用自定義啓動器嗎?當您旋轉手機時,它的圖標/小部件是否會旋轉?
請讓我們知道,我們會盡力幫助。 :-)

編輯:我還沒有看到這個清楚的地方在黑色和白色的任何地方都清晰可見,但我的印象是,我們生活的壁紙通常是在使用的發射器的擺佈。如前所述,大多數設備都配備了對方位變化無響應的發射器,因此它們所提供的表面也不會發生變化。我知道一些定製的發射器確實會對定位的變化做出反應,但是直到我們發現模擬器的發射器也這樣做的問題之前,我才意識到這一點。我最好的猜測是你無法阻止自定義啓動器(包括模擬器)旋轉你的畫布。但是,如果需要,您可以檢測並補償這一點。在onSurfaceChanged中,你可以檢查你的寬度是否大於你的高度,如果是,你可以使用這裏顯示的技術來查詢方向:http://www.codeproject.com/KB/android/AndroidLiveWallpaper.aspx
然後你可以在繪製之前將畫布旋轉回肖像模式,它應該都是好的。 :-)

+0

是的,當我旋轉模擬器它會自動轉換到橫向模式,但在真實設備中,我測試它在索尼愛立信Xperia X10,HTC Legend,HTC Desire S,它不會自動轉換到風景模式。我有個問題。橫向模式僅適用於模擬器嗎? – George 2011-05-10 15:47:51

+0

謝謝,你已經幫我 – George 2011-05-10 16:47:20

+1

我認爲如果你會使用平板電腦比你可以看到動態壁紙的方向變化太.... @George – MGDroid 2014-03-13 09:01:23