如何获取画布的当前位图?

时间:2010-11-16 10:54:34

标签: java android canvas bitmap

我想获得与我的画布相关联的当前位图,以便我可以对其执行操作。我看不出怎么做。

我已经看到一些例子,你创建一个位图并设置画布使用这个位图,所以显然你可以稍后访问它,但我正在使用从SurfaceHolder返回的画布,因此没有构造函数。

例如,例子经常显示这种事情:

Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
  • 所以此时我可以看到bmp。

就我而言,画布是通过以下方式获得的:

final SurfaceHolder holder = getSurfaceHolder();

    Canvas c = null;
    try {
        c = holder.lockCanvas();

那么如何获取c的位图?

修改的 @Reuben - 你可能是对的,我确实很奇怪。简而言之,我的目标是捕获当前画布内容,我已经绘制了“东西”,然后制作它的副本,反转,放在下面。喜欢反思。我发现的这个例子是通过位图执行的,所以我假设我需要以某种方式将当前画布捕获到位图然后使用它。如果有更好的方法可以做到这一点,我全都听见了!

2 个答案:

答案 0 :(得分:3)

迟到总比没有好:)

BitmapDrawable bitDrawable = new BitmapDrawable();
bitmapDrawable.draw(videoView.getHolder().lockCanvas());

然后,您可以从BitmapDrawable返回位图。

就我而言,我做到了这一点:

imageView.setImageBitmap(bitmapDrawable.getBitmap());

答案 1 :(得分:0)

c.getSurface()使您可以直接访问Surface对象。