Voglio ruotare ImageButton quando l'orientamento del dispositivo cambia. Dovrebbe ruotare per 90, 180, 270 e 360 angoli e il relativo layout dovrebbe rimanere fisso in modo che solo i pulsanti si muovano. Come si può fare? Ho fatto delle ricerche ma non ho trovato nulla che potesse aiutarmi.Come ruotare i pulsanti quando l'orientamento cambia senza ruotare il layout?
risposta
È possibile rilevare un cambio di orientamento sovrascrivendo come questo:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//call your rotate method here
}
Poi, una volta a rilevare l'evento di modifica dell'orientamento, è possibile eseguire una rotazione animata su un pulsante come questo:
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);
}
È possibile impostare l'angolo iniziale e finale nel costruttore di RotateAnimation
, quindi impostare la durata della durata dell'animazione (in millisecondi). Quindi chiami semplicemente startAnimation()
sulla vista che desideri animare.
Grazie, @drschultz, la tua risposta è ottima, il problema è che il mio orientamento delle attività è fisso e onConfigurationChanged dà sempre lo stesso risultato. L'avrei detto se avessi saputo come affrontare questo problema. Qualche idea su come rilevare l'orientamento con gli assi xey con SensorEventListener? –
Se l'orientamento dello schermo è bloccato e non può essere ruotato, sfortunatamente è necessario calcolare i propri valori di rotazione utilizzando i dati del sensore. È qui che le cose diventano piuttosto complesse. Puoi leggere [Sensori Android nei documenti qui] (http://developer.android.com/guide/topics/sensors/sensors_overview.html), e per vedere alcuni esempi di codice, puoi trovare alcune buone risposte su Stack Overflow come [questa domanda qui] (http://stackoverflow.com/questions/27106607/get-rotation-and-display-in-degrees). Ma vorrei aprire una nuova domanda se hai ancora bisogno di aiuto con la roba del sensore. – NoChinDeluxe
Per quanto riguarda questa domanda, le chiedo cortesemente di accettare la mia risposta poiché risponde alla sua domanda originale (e potrebbe aiutare gli altri in futuro con una domanda simile). Quindi, puoi aprire una nuova domanda se hai bisogno di aiuto su come implementare i dati del sensore. – NoChinDeluxe
- 1. Android Come ruotare l'ago quando la velocità cambia?
- 2. Winston: come ruotare i registri
- 3. Ruota il video HTML 5 senza anche ruotare i controlli?
- 4. Come ruotare Bitmap senza crearne uno nuovo?
- 5. Come ruotare il testo Swing?
- 6. Come ruotare UITableViewCellAccessoryDisclosureIndicator?
- 7. Come ruotare MapView?
- 8. OpenCV: come ruotare IplImage?
- 9. Come posso ruotare un elemento con css senza interrompere il "flusso" del layout?
- 10. Come posso ruotare i rettangoli in Libgdx?
- 11. Come trasporre/ruotare i dati nell'alveare?
- 12. Come ruotare il pulsante di azione fluttuante senza ombra rotante?
- 13. Come ruotare un CannonJS RigidBody?
- 14. Come ruotare il testo per drawText?
- 15. Come ruotare il testo SVG con css
- 16. jQuery ruotare/trasformare
- 17. Cursori del mouse CSS ... ruotare i cursori?
- 18. Come ruotare l'immagine con jQuery?
- 19. Ruotare un animazione Imagewith
- 20. Come ruotare il sistema di coordinate?
- 21. Come ruotare il testo in GDI +?
- 22. Come ruotare un grafico su molti quando si usa knitr?
- 23. android come ruotare tela rect
- 24. Come ruotare correttamente la bitmap?
- 25. Come ruotare un'immagine R raster
- 26. Bitwise ruotare funzione
- 27. IOS: ruotare un UIImageView
- 28. Animazione CSS, ruotare su clic
- 29. Impossibile ruotare il fiocco di neve Koch
- 30. Come ruotare l'immagine da "onPictureTaken" senza memoria esaurita Eccezione?
È necessario suddividere l'attività sui pezzi: 1 interrompere la ricreazione dell'attività a rotazione. 2. Cogliere la rotazione. 3. Rotazione della vista .... Ognuno di questi pezzi ha già una risposta, qui su SO ... È difficile credere che non hai trovato nulla ... – Selvin
Non sapevo come dividere il mio domanda in quei pezzi. Sono un neofita di Android e Java. Ho ancora un problema perché il mio orientamento di attività è fisso e devo rilevare l'orientamento con l'accelerometro e non ho idea di come farlo. –