Je fais une rotation d'un bitmap de cette façon, sur chaque bouton, cliquez sur l'image Tourner à 90 degrés
Matrix matrix = new Matrix(); matrix.postRotate(90); rotated = Bitmap.createBitmap(rotated, 0, 0, rotated.getWidth(), rotated.getHeight(), matrix, true); iv.setImageBitmap(rotated);
3 Réponses :
J'ai des suggestions pour vous.
1) Lorsque vous avez une tâche de la faim de mémoire, utilisez des méthodes et si possible avec asynctack code>.
2) Déclarez des objets sous forme faibles code>. Cela vous donnera la chance de libérer la mémoire après utilisation. Voir l'exemple ci-dessous. P>
public class RotateTask extends AsyncTask<Void, Void, Bitmap> {
private WeakReference<ImageView> imgInputView;
private WeakReference<Bitmap> rotateBitmap;
public RotateTask(ImageView imgInputView){
this.imgInputView = new WeakReference<ImageView>(imgInputView);
}
@Override
protected void onPreExecute() {
//if you want to show progress dialog
}
@Override
protected Bitmap doInBackground(Void... params) {
Matrix matrix = new Matrix();
matrix.postRotate(90);
rotateBitmap = new WeakReference<Bitmap>(Bitmap.createBitmap(rotated, 0, 0,rotated.getWidth(), rotated.getHeight(), matrix, true));
return rotateBitmap.get();
}
@Override
protected void onPostExecute(Bitmap result) {
//dismiss progress dialog
imgInputView.get().setImageBitmap(result);
}
}
C'est un économiseur de vie à 4h00 du matin.
Content que ça vous a aidé .. :)
Essayez comme ci-dessous:
Matrix matrix = new Matrix(); matrix.postRotate(90); rotated = Bitmap.createBitmap(rotated, 0, 0,rotated.getWidth(), rotated.getHeight(), matrix, true); ByteArrayOutputStream bmpStream = new ByteArrayOutputStream(); rotated.compress(Bitmap.CompressFormat.JPEG,100, bmpStream); iv.setImageBitmap(rotated);
Si vous devez simplement afficher les images, vous pouvez définir une rotation adaptable comme montré ici strong> a> p>
Si vous vous souciez de la rotation réelle du bitmap, et que vous souhaitez également éviter l'OOM, cochez ce lien strong> p>
Pourrait-il aider? développeur.android.com/training/displaying-bitmaps/index.htmlled/a >
Si la rotation de l'imageView est une alternative, passez avec ça!
La rotation de l'imageView n'est pas une option, je sauve la bitmap par la suite. Bien que dans d'autres situations, c'est une meilleure option.