0

Lors de l'utilisation de bitmap dans Xamarin Forms Android, je suis en train de télécharger des images dont la taille est supérieure à la taille habituelle.La fuite de mémoire se produit dans Xamarin Forms Android lors de l'utilisation de Bitmap

vide getImage() {------- imageView.setImageBitmap (Bitmap.createScaledBitmap (getBitmapFromViewUpdated (_view), (int) largeur, (int) hauteur, true)); tempView = imageView; } -------- } statique Bitmap getBitmapFromView publique (vue Vue finale) {

 view.setLayoutParams(new LayoutParams(view.getWidth(), 
       view.getHeight())); 
     view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); 
     final Bitmap bitmap_ = Bitmap 
       .createBitmap(view.getMeasuredWidth(), 
         view.getMeasuredHeight(), 
         Bitmap.Config.ARGB_8888); 
     Canvas c = new Canvas(bitmap_); 
     view.draw(c); 

     return bitmap_; 

    } 

    Bitmap getBitmapFromViewUpdated(final View view) { 
     if (view.getWidth() == 0 || view.getHeight() == 0) 
      view.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
        ViewGroup.LayoutParams.MATCH_PARENT)); 
     else 
      view.setLayoutParams(new LayoutParams(view.getWidth(), 
        view.getHeight())); 
     view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     view.layout(0, 0, viewWidth, viewHeight); 
     final Bitmap bitmap_; 
     if(viewWidth>0 && viewHeight>0) { 
      bitmap_ = Bitmap 
        .createBitmap(viewWidth, 
          viewHeight, Bitmap.Config.ARGB_8888); 
     } 
     else 

     { 
      bitmap_= Bitmap 
        .createBitmap(view.getMeasuredWidth(), 
          view.getMeasuredHeight(), 
          Bitmap.Config.ARGB_8888); 
     } 
     Canvas c = new Canvas(bitmap_); 
     view.draw(c); 

     return bitmap_; 

    } 

} 

J'ai essayé android: largeHeap = true, peut atteindre le résultat tout en utilisant cela, mais je dois savoir comment corriger avec le redimensionnement des bitmaps.

Merci à l'avance ...

Répondre

0
+0

Avoir vérifié ces liens, mais besoin de savoir comment obtenir le redimensionné en vue. – Rabhia

+0

En fait, si vous lui donnez votre bitmap, il vous donnera le bitmap compressé et redimensionné lui-même S'il vous plaît vérifier le second lien essayez d'implémenter le scénario lui-même @Rabhia –