我想在設備方向更改時旋轉ImageButton。它應該旋轉90,180,270和360度的角度,其相對佈局應保持穩定,只有按鈕移動。如何才能做到這一點?我做了一些研究,但沒有發現可以幫助我的任何事情。如何在方向改變時旋轉按鈕而不旋轉佈局?
回答
您可以通過重寫這樣檢測的方向變化:
public void rotateView(View view) {
Button button = (Button) view.findViewById(R.id.some_button);
RotateAnimation rotateAnimation = new RotateAnimation(0, 360);
rotateAnimation.setDuration(2000);
button.startAnimation(rotateAnimation);
}
:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//call your rotate method here
}
然後,一旦你檢測取向變化時,你可以在這樣一個按鈕進行動畫旋轉
您可以在構造函數RotateAnimation
中設置開始和結束角度,然後設置動畫應持續的時間(以毫秒爲單位)。然後,只需在要製作動畫的視圖上調用startAnimation()
即可。
謝謝@drschultz,你的回答很好,問題是我的活動方向是固定的,onConfigurationChanged總是給出相同的結果。如果我知道如何解決這個問題,我會說。有關如何使用SensorEventListener檢測軸x和y方向的任何想法? –
如果您的顯示方向被鎖定並且無法旋轉,那麼很遺憾,您需要使用傳感器數據計算自己的旋轉值。這是事情變得相當複雜的地方。你可以在這裏閱讀關於[Android傳感器的文檔](http://developer.android.com/guide/topics/sensors/sensors_overview.html),並看到一些代碼示例,你可以找到堆棧溢出的一些很好的答案像[這裏這個問題](http://stackoverflow.com/questions/27106607/get-rotation-and-display-in-degrees)。但是如果你仍然需要傳感器的幫助,我會提出一個新的問題。 – NoChinDeluxe
至於這個問題,我會懇請你接受我的回答,因爲它確實回答你原來的問題(並且可能在將來也會用類似的問題幫助其他人)。然後,如果您需要關於如何實現傳感器數據的幫助,則可以打開一個新問題。 – NoChinDeluxe
- 1. 改變方向而不旋轉設備
- 2. 如何在旋轉時更改佈局?
- 3. 當屏幕旋轉時,佈局改變
- 4. 如何在設備方向快速變化時旋轉按鈕?
- 5. 改變旋轉方向Pygame
- 6. 在自動旋轉時更改佈局
- 7. 佈局沒有改變旋轉
- 8. 如何旋轉佈局?
- 9. 旋轉按鈕
- 10. 旋轉AdWhirl佈局
- 11. Flex:旋轉按鈕和改變焦點
- 12. 如何在改變方向的同時旋轉地圖
- 13. 當手機被旋轉(方向改變)
- 14. 旋轉使用佈局畫布變換
- 15. 如何旋轉方向?
- 16. Android WebView在旋轉設備時不會改變方向
- 17. 如何在android中旋轉佈局?
- 18. 在佈局中旋轉ImageView ...如何?
- 19. 在改變屏幕旋轉佈局時保持webview
- 20. 如何調整dojo BorderContainer佈局來處理旋轉的按鈕?
- 21. 按鈕不會旋轉libGDX
- 22. 按鈕動作不旋轉
- 23. Swift:容器視圖佈局在旋轉並再次旋轉時發生變化
- 24. Jquery旋轉按鈕
- 25. WPF旋轉按鈕
- 26. 按鈕旋轉GPUImage
- 27. Android - 按下按鈕時旋轉/旋轉「加載」圖像
- 28. 文本框在畫布上拖動方向旋轉後改變
- 29. 方向不在iOS 10中旋轉,但在iOS 11中旋轉
- 30. 旋轉矩陣更改佈局
您必須將任務分解爲碎片:1停止旋轉活動的重新創建。 2.捕捉旋轉。 3.視圖的旋轉....這些片斷中的每一個都已經有了答案,所以在這裏......很難相信你沒有找到任何東西...... – Selvin
我不知道如何劃分我的問題到這些片斷。我是Android和Java的新手。我仍然有問題,因爲我的活動方向是固定的,我必須用加速度計檢測方向,不知道如何去做。 –