我創建了一個動態壁紙它在縱向模式下工作正常,但是當我將手機置於橫向模式下時,視圖不能正常顯示。現在我想要做的是「修復屏幕方向在肖像模式「。我怎樣才能做到這一點的動態壁紙? 我試圖旋轉位圖和畫布,但它看起來不是很好。有沒有關於旋轉畫布和位圖的任何教程?請建議並請爲我的問題提供建議。 在此先感謝。動態壁紙中的屏幕方向
1
A
回答
1
請看看我的代碼:
public class PonyWallpaper extends AnimationWallpaper {
/*some code here*/
class PonyEngine extends AnimationEngine {
/*some code here as well*/
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
Log.v("orientation changed", "w: "+width + " h: " + height + " width desired: " + this.getDesiredMinimumWidth() + " height desired: " + this.getDesiredMinimumHeight());
與AnimationEngine從橫向切換到肖像時,宣佈爲
protected abstract class AnimationEngine extends android.service.wallpaper.WallpaperService.Engine
輸出:
方向改變(352) :w:800 h:480所需寬度:960高度 所需數量:800
從縱向切換到風景時,輸出:
取向改變(352):W:480個H:800寬度期望:960高度 期望:800
,你可以請參閱android.service.wallpaper.WallpaperService.Engine類的onSurfaceChanged方法,每當方向發生變化時調用。
從我注意到,
this.getDesiredMinimumWidth()
和
this.getDesiredMinimumHeight()
沒有變化並且是寬度和高度的最大可能值。
我的解決辦法是:
- 到寬度,所希望的寬度,高度和希望的高度傳遞給我的抽屜對象的方法;
- 可以調用drawObject()方法,座標範圍爲0.0到1。0;
- 將抽屜對象內部的這些值縮放到由所需寬度和期望高度描述的邏輯座標;
- 設置由
座標由xPixelOffset判斷通過的實際X構成了偏置onOffsetsChanged方法的
android.service.wallpaper.WallpaperService.Engine
- 根據實際高度和期望高度的差異來設置實際y座標的損失。
我希望這會有所幫助!
+0
我剛剛在我的新索尼Xperia TX中發現了兩個預裝的固定縱向方向的動態壁紙。如果您使用其中一個動態壁紙,屏幕也會以人像模式修復。所以,也許,這是通過選項設置它的某種方式... – 2013-01-31 11:01:31
相關問題
- 1. 防止動態壁紙改變屏幕方向
- 2. 動態壁紙屏幕旋轉
- 3. RE:動態壁紙屏幕旋轉
- 4. 設置主屏幕壁紙
- 5. 從動態壁紙獲取主屏幕上的頁面
- 6. OutOfMemoryError設置屏幕上的動態壁紙
- 7. 作爲android動態壁紙的屏幕保護程序
- 8. 如何將動態壁紙縮放到屏幕大小?
- 9. Android屏幕燒錄 - Droid X - 動態壁紙
- 10. Android動態壁紙
- 11. Android動態壁紙
- 12. Android動態壁紙
- 13. 動態壁紙Android?
- 14. AngEngine動態壁紙
- 15. 動態壁紙可以在縱向模式下鎖定屏幕嗎?
- 16. 任何隱藏Android主屏幕圖標以顯示動態壁紙的方法?
- 17. 屏幕尺寸壁紙適合圖像
- 18. AndEngine壁紙旋轉屏幕錯誤
- 19. Android壁紙應用屏幕尺寸
- 20. 製作位圖適合屏幕壁紙
- 21. 設置壁紙適合屏幕
- 22. 單獨的動態壁紙
- 23. android的動態壁紙
- 24. 動態壁紙的onTouchEvent
- 25. Android動態壁紙動畫
- 26. 動態壁紙中的定期動作
- 27. 動態壁紙中的ImageView動畫
- 28. 如何將廣告橫幅放置在動態壁紙的預覽屏幕中?
- 29. 顯示Admob動態壁紙?
- 30. 動態壁紙開發庫
我在改變屏幕方向時也有問題。我的壁紙每分鐘重繪一次,因此當方向改變時我必須觸發重繪。你有一個想法,當方向改變時哪個事件被調用? – 2012-05-14 13:24:54
但回到你的問題:就我而言,我只是用畫布來繪製我的東西。而且我不需要做任何特殊的事情來繪製橫向模式。當手機處於縱向模式時,canvas.getWidth()是手機的寬度,當手機處於橫向模式時,canvas.getWidth()是手機的高度。所以我不必把它變成這樣或類似的東西...... – 2012-05-14 13:27:34