我想在設備方向更改時旋轉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. 旋轉AdWhirl佈局
- 5. Flex:旋轉按鈕和改變焦點
- 6. 旋轉使用佈局畫布變換
- 7. 如何旋轉方向?
- 8. 在佈局中旋轉ImageView ...如何?
- 9. 如何在android中旋轉佈局?
- 10. 按鈕不會旋轉libGDX
- 11. 按鈕動作不旋轉
- 12. Swift:容器視圖佈局在旋轉並再次旋轉時發生變化
- 13. WPF旋轉按鈕
- 14. Jquery旋轉按鈕
- 15. 按鈕旋轉GPUImage
- 16. 文本框在畫布上拖動方向旋轉後改變
- 17. 方向不在iOS 10中旋轉,但在iOS 11中旋轉
- 18. Swift:Collection查看旋轉後更改佈局
- 19. 旋轉矩陣更改佈局
- 20. 旋轉的Android佈局
- 21. 以xml佈局旋轉SurfaceView
- 22. 整個佈局的旋轉
- 23. 旋轉整個android佈局
- 24. 試圖在Android中旋轉佈局,畫布看起來不會旋轉
- 25. 如何防止設備旋轉時的佈局變化?
- 26. 如何將負向旋轉值轉換爲正向旋轉值?
- 27. Javascript旋轉 - 如何逆時針旋轉?
- 28. ios動畫,旋轉按鈕,按鈕突然改變位置
- 29. WP7遊戲 - 在方向改變時只旋轉一些控件
- 30. WP7 - 在方向改變時只旋轉一些物體
您必須將任務分解爲碎片:1停止旋轉活動的重新創建。 2.捕捉旋轉。 3.視圖的旋轉....這些片斷中的每一個都已經有了答案,所以在這裏......很難相信你沒有找到任何東西...... – Selvin
我不知道如何劃分我的問題到這些片斷。我是Android和Java的新手。我仍然有問題,因爲我的活動方向是固定的,我必須用加速度計檢測方向,不知道如何去做。 –