【发布时间】:2012-12-20 07:54:08
【问题描述】:
我在一个扩展表面视图并实现可运行的类中有这段代码 我能够使用该类基本上允许您使用不同的颜色等绘制到画布上。我正在尝试获得一种方法,该方法允许我在绘制图像后保存图像,这就是方法。无论我做什么,我都会得到一个黑色的图像,上面什么都没有。有什么想法吗?
我已启用缓存绘图
Objective 从自定义 SurfaceView 获取位图图像我已经用尽了在这里查看其他帖子的选项,但没有找到任何工作。希望最近有一个新的解决方案。非常感谢
public Bitmap getImage() {
Bitmap bitmap = Bitmap.createBitmap(this.getWidth(),
this.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
this.draw(canvas);
return bitmap;
}
【问题讨论】:
-
您希望
this.getWidth()和this.getHeight()给予什么? -
您正在创建一个新的位图,上面没有任何内容。然后你从那个空白位图创建一个画布。你没画过,怎么能指望画呢?请注意:如果您要覆盖 SurfaceView 的 onDraw() 方法,请务必在您的类构造函数中调用
setWillNotDraw(false)。 -
我希望得到surfaceview的宽度和高度,因为这是我正在扩展的类。
-
我想发生的是我创建了一个新的空白位图,它具有我的表面视图的尺寸。我有一个将绘制到我的位图的新画布。然后我调用 this.draw 绘制到我的画布,然后绘制到位图?我想错了吗?我猜我一定是
-
来自 developer.android.com 用指定的位图构造一个画布来绘制。位图必须是可变的。画布的初始目标密度与给定位图的密度相同。参数 bitmap 为要绘制的画布指定一个可变位图。
标签: android bitmap android-canvas surfaceview extends