Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取画布的当前位图?_Java_Android_Canvas_Bitmap - Fatal编程技术网

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

Java 如何获取画布的当前位图?,java,android,canvas,bitmap,Java,Android,Canvas,Bitmap,我想获取与画布关联的当前位图,以便对其执行操作。但我不知道该怎么做 我看到过一些示例,其中您创建了一个位图并将画布设置为使用此位图,因此显然您可以稍后访问它,但我使用的是从SurfaceHolder返回的画布,因此没有构造函数 例如,示例经常显示这种情况: Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); 所以在这一点上我可以看到bmp 就我而言,

我想获取与画布关联的当前位图,以便对其执行操作。但我不知道该怎么做

我看到过一些示例,其中您创建了一个位图并将画布设置为使用此位图,因此显然您可以稍后访问它,但我使用的是从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的位图呢

编辑 @鲁本-你可能是对的,我真的很好奇。简言之,我的目标是捕捉我绘制“东西”的当前画布内容,并将其复制一份,反转放置在下面。就像一个倒影。我发现的这个例子都是通过位图实现的,所以我假设我需要以某种方式将当前画布捕获到位图中,然后使用它。如果有更好的办法,我会洗耳恭听的

c.getSurface()允许您直接访问曲面对象。

迟到总比不迟到好:)

然后,您可以从BitmapDrawable重新访问位图

就我而言,我做到了:


setImageBitmap(bitmapDrawable.getBitmap())

你想要位图做什么?怀疑你正在以错误的方式接近你试图做的事情…哦,酷-我从来没有完成过那个特定的项目,也许我会重新审视它,看看上面的内容是否有用!
BitmapDrawable bitDrawable = new BitmapDrawable();
bitmapDrawable.draw(videoView.getHolder().lockCanvas());