我想获得与我的画布相关联的当前位图,以便我可以对其执行操作。我看不出怎么做。
我已经看到一些例子,你创建一个位图并设置画布使用这个位图,所以显然你可以稍后访问它,但我正在使用从SurfaceHolder返回的画布,因此没有构造函数。
例如,例子经常显示这种事情:
Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
就我而言,画布是通过以下方式获得的:
final SurfaceHolder holder = getSurfaceHolder();
Canvas c = null;
try {
c = holder.lockCanvas();
那么如何获取c的位图?
修改的 @Reuben - 你可能是对的,我确实很奇怪。简而言之,我的目标是捕获当前画布内容,我已经绘制了“东西”,然后制作它的副本,反转,放在下面。喜欢反思。我发现的这个例子是通过位图执行的,所以我假设我需要以某种方式将当前画布捕获到位图然后使用它。如果有更好的方法可以做到这一点,我全都听见了!
答案 0 :(得分:3)
迟到总比没有好:)
BitmapDrawable bitDrawable = new BitmapDrawable();
bitmapDrawable.draw(videoView.getHolder().lockCanvas());
然后,您可以从BitmapDrawable返回位图。
就我而言,我做到了这一点:
imageView.setImageBitmap(bitmapDrawable.getBitmap());
答案 1 :(得分:0)
c.getSurface()使您可以直接访问Surface对象。