Come è possibile ruotare un Drawable
da una risorsa quando viene disegnato? Ad esempio, mi piacerebbe disegnare una freccia ed essere in grado di ruotarlo per affrontare in direzioni diverse quando viene disegnato?Rotazione di un elemento estraibile in Android
risposta
È necessario utilizzare le funzioni di Bitmap e classe Canvas per preparare drawable:
Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2);
Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmResult);
tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
mImageView.setImageBitmap(bmResult);
In questo esempio di codice si verifica una rotazione di 90 gradi rispetto al centro dell'immagine.
OK, se hai bisogno di rendere l'immagine semitrasparente o di avere bisogno della funzione di zoom, puoi controllare anche questo http://stackoverflow.com/questions/4688306/how-can-i-make-image-opaque-to-some- level/4689624 # 4689624 – Zelimir
Funziona bene se la bitmap originale è quadrata:) .... e se non lo fosse? – Jay
Funziona bene anche per me. Qual è il problema che incontri? – Zelimir
essenzialmente questo: Link
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
fonte:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#tween-animation
Non è quello che voleva il richiedente, questo ruota tra una serie di immagini, quello che si voleva era una rotazione planare di una singola immagine! – fredley
In realtà, è possibile eseguire rotazioni (su un singolo disegno) con un'animazione di interpolazione. http://developer.android.com/guide/topics/resources/animation-resource.html#Tween – edthethird
Ed, grazie per il supporto. –
essenzialmente può essere riassunta in: fare un (n inversa) tela trasformazione invece di trasformare drawable
private BitmapDrawable drawable; // or Drawable
protected void onDraw(Canvas canvas) { // inherited from View
//...
canvas.save();
canvas.rotate(degrees, pivotX, pivotY);
drawable.draw(canvas);
canvas.restore();
//...
}
se avete BitmapDrawable può essere desiderabile aumentare la qualità della produzione impostando antialiasing
drawable.setAntialias(true);
Penso che questa sia la soluzione più efficace ora –
In realtà canvas.rotate() deve essere eseguito _prima_ disegnando il drawable. – Ridcully
non ti manca l'implementazione della funzione onMeasure? –
La risposta accettata non funziona per me. Ho un'immagine non quadrata, quindi ho cambiato un po 'il suo codice.
private Bitmap rotateDrawable(@DrawableRes int resId) {
Bitmap bmpOriginal = BitmapFactory.decodeResource(getResources(), resId);
Bitmap bmpResult = Bitmap.createBitmap(bmpOriginal.getHeight(), bmpOriginal.getWidth(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmpResult);
int pivot = bmpOriginal.getHeight()/2;
tempCanvas.rotate(90, pivot, pivot);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
return bmpResult;
}
mImageView.setImageBitmap(rotateDrawable(R.drawable.some_image));
- 1. Casella multitesta Android in xml estraibile
- 2. Come aumentare la velocità di rotazione in Android?
- 3. Rotazione di un elemento in base alla posizione del cursore in un elemento separato
- 4. Come proteggere la risorsa estraibile nell'applicazione Android
- 5. Esponente privato KeyStore Android non estraibile
- 6. Impossibile accedere a Android/estraibile Icona-Risorsa
- 7. Studio Android mostra un punto esclamativo rosso all'attributo estraibile
- 8. onorare blocco rotazione in Android
- 9. Solo rotazione di Android Paesaggio
- 10. Immagine di rotazione e zoom in Android
- 11. Il selettore richiede un attributo estraibile?
- 12. Android - Pulsante con rotazione/rotazione dell'immagine di "caricamento" quando premuto
- 13. fotocamera Android Anteprima rotazione
- 14. Pannello estraibile con bootstrap
- 15. Trovare il colore dominante di un'immagine in un dispositivo Android @ estraibile
- 16. Rotazione di un vettore (array)
- 17. Converti Quaternion rotazione in matrice di rotazione?
- 18. Gestione della rotazione del display in Android
- 19. Gestione attività in rotazione su Android
- 20. Rotazione Immagine su una tela in Android
- 21. Posizione CSS Android: fissa dopo la rotazione di un dispositivo
- 22. Come ottenere il valore di rotazione di un elemento dell'interfaccia utente in WPF
- 23. Ottieni informazioni di rotazione automatica su Android
- 24. Animazione rotazione Android con ScrollView
- 25. webcamTotazione di rotazione diversa in unity3d in Android
- 26. Android: come utilizzare i colori del tema corrente in un xml estraibile?
- 27. Rotazione di immagini su Android. C'è un modo migliore?
- 28. Rimuovere un elemento in RecyclerView- Android
- 29. Caricamento estraibile dalla scheda SD
- 30. Condivisione di un'immagine png nella cartella estraibile
possibile duplicato di [Come posso disegnare una freccia che indica la direzione di marcia in MapView?] (Http://stackoverflow.com/questions/4331794/how-can-i-draw-an-arrow-showing -the-driving-direction-in-mapview) – Jonas
La domanda è abbastanza diversa, ma penso che la risposta potrebbe essere correlata. – Computerish