清除 Android 中的位图
Clear Bitmap in Android
我使用位图和 canvas 创建了第一个图表。如何清除位图以绘制新图表?
ImageView imageView = new ImageView(this);
Bitmap bitmap = Bitmap.CreateBitmap(w, h, Bitmap.Config.Argb8888);
Canvas canvas = new Canvas(bitmap);
...
imageView.SetImageBitmap(bitmap);
relativeLayout.AddView(imageView);
解决方案是使用
bitmap.eraseColor
ImageView imageView = new ImageView(this);
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// Your Other code
imageView.setImageBitmap(bitmap);
relativeLayout.AddView(imageView);
现在通过下面的代码释放位图内存
bitmap.recycle();
帮助 of recycle() bitmap 方法按照this .
public无效回收()
添加到 API 级别 1
释放与此位图关联的本机对象,并清除对像素数据的引用。这不会同步释放像素数据;如果没有其他引用,它只是允许它被垃圾收集。位图被标记为 "dead",这意味着如果调用 getPixels() 或 setPixels() 它将抛出异常,并且不会绘制任何内容。此操作无法撤消,因此只有在您确定该位图不再有其他用途时才应调用它。这是一个高级调用,通常不需要调用,因为正常的 GC 过程将在不再引用此位图时释放此内存。
您可以在位图上使用eraseColor
将其颜色设置为透明。无需重新创建即可再次使用。
bitmap.eraseColor(Color.TRANSPARENT);
进一步阅读here
我使用位图和 canvas 创建了第一个图表。如何清除位图以绘制新图表?
ImageView imageView = new ImageView(this);
Bitmap bitmap = Bitmap.CreateBitmap(w, h, Bitmap.Config.Argb8888);
Canvas canvas = new Canvas(bitmap);
...
imageView.SetImageBitmap(bitmap);
relativeLayout.AddView(imageView);
解决方案是使用
bitmap.eraseColor
ImageView imageView = new ImageView(this);
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// Your Other code
imageView.setImageBitmap(bitmap);
relativeLayout.AddView(imageView);
现在通过下面的代码释放位图内存
bitmap.recycle();
帮助 of recycle() bitmap 方法按照this .
public无效回收() 添加到 API 级别 1 释放与此位图关联的本机对象,并清除对像素数据的引用。这不会同步释放像素数据;如果没有其他引用,它只是允许它被垃圾收集。位图被标记为 "dead",这意味着如果调用 getPixels() 或 setPixels() 它将抛出异常,并且不会绘制任何内容。此操作无法撤消,因此只有在您确定该位图不再有其他用途时才应调用它。这是一个高级调用,通常不需要调用,因为正常的 GC 过程将在不再引用此位图时释放此内存。
您可以在位图上使用eraseColor
将其颜色设置为透明。无需重新创建即可再次使用。
bitmap.eraseColor(Color.TRANSPARENT);
进一步阅读here