我在下面有一个 ScaleGestureDetector,我可以在调用 adpater notifyDataSetChanged 后检测到 onScale 事件并实时调整我的视图大小。但是,它很慢,因为我的观点很复杂。有没有办法捕获视图的临时图像,然后调整图像大小以向用户显示效果,最后在 onScaleEnd 触发时更改真正的最终视图数据?
多谢
我在下面有一个 ScaleGestureDetector,我可以在调用 adpater notifyDataSetChanged 后检测到 onScale 事件并实时调整我的视图大小。但是,它很慢,因为我的观点很复杂。有没有办法捕获视图的临时图像,然后调整图像大小以向用户显示效果,最后在 onScaleEnd 触发时更改真正的最终视图数据?
多谢
我通过以下来实现这一点
保存位图
this.setDrawingCacheEnabled(true);
ivSnapShotBitmap = Bitmap.createBitmap(this.getDrawingCache());
this.setDrawingCacheEnabled(false);
onDraw(画布画布)
canvas.drawBitmap(ivSnapShotBitmap, 0, 0, null);
canvas.scale(ivScaleFactor, ivScaleFactor);
超级.onDraw(画布);
这可以支持类型 10 及以下的 API 级别进行多点触控缩放,因为视图本身不支持 scale(x,y)
其中一个问题是当视图被缩小时。右侧和底部的空白区域将显示原始背景,我仍在寻找修复它的方法。