0

Xamarin Forms Androidでビットマップを使用しているときに、通常のサイズよりも大きな画像を読み込む際にメモリエラーが発生します。Xamarin Forms Androidでビットマップを使用中にメモリリークが発生する

void getImage(){------- imageView.setImageBitmap(Bitmap.createScaledBitmap(getBitmapFromViewUpdated(_view)、(int)width、(int)height、true)); tempView = imageView; } -------- } パブリック静的ビットマップgetBitmapFromView(最終的なビュービュー){

 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_; 

    } 

} 

私はアンドロイド試みた:それを使用しながらlargeHeap = TRUEは、結果を達成することができると私は必要ビットマップのリサイズを修正する方法を知っている。

事前のおかげで...

答えて

0

あなたはグッドラックアンドロイド

https://forums.xamarin.com/discussion/5716/disposing-of-bitmaps-properly

https://developer.xamarin.com/recipes/android/resources/general/load_large_bitmaps_efficiently/

をxamarinで効率的なビットマップ管理のためにこれらの2つのリンクを確認することができます!

+0

このリンクをチェックしましたが、サイズ変更されたビューを表示する方法が必要でした。 – Rabhia

+0

実際にビットマップを与えると、ビットマップ自体が圧縮され、サイズが変更されます。第2リンクを確認してください。シナリオ自体を実装してみてください@Rabhia –

関連する問題