1

我在一个 android 应用程序中工作,我想清除我的位图数据。场景是我正在对一个小部件(Imageview)进行屏幕截图,并将其存储在位图中。此操作来自按钮单击。所以过了一段时间我得到一个内存错误。所以我想清除位图中的值。为此,我完成了以下代码: BitMap 变量是 mCaptureImageBitmap

  public void ButtonClick(View v)
    {
               mCaptureImageBitmap.recycle();   
               mCaptureImageBitmap=null;                        
                View ve = findViewById(R.id.mainscreenGlViewRelativeLayout);
                ve.setDrawingCacheEnabled(true);
                mCaptureImageBitmap = ve.getDrawingCache();
    }

但是我收到 NullPoint 异常的错误。请帮我

4

2 回答 2

1

您拥有大部分正确的代码,但顺序错误。尝试做这样的事情

public void ButtonClick(View v)
{
      Bitmap mCaptureImageBitmap;
      final View ve = findViewById(R.id.mainscreenGlViewRelativeLayout);
      ve.setDrawingCacheEnabled(true);
      mCaptureImageBitmap = ve.getDrawingCache();

      // Do something useful with your image here

      mCaptureImageBitmap.recycle();
      mCaptureImageBitmap = null;
}
于 2012-06-13T10:37:14.510 回答
1

试试这段代码...

ve.setDrawingCacheEnabled(true);  

// Add these lines 

ve.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),              MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
ve.layout(0, 0, ve.getMeasuredWidth(), ve.getMeasuredHeight());   
ve.buildDrawingCache(true); 

Bitmap b = Bitmap.createBitmap(ve.getDrawingCache()); 

mCaptureImageBitmap = b;

ve.setDrawingCacheEnabled(false); // clear drawing cache 
于 2012-06-13T10:48:17.997 回答