Android 使用dispatchDraw(Canvas)获取视频预览的分段
以下是SurfaceView子类中重写的dispatchDraw。我正在尝试更改曲面的参数(仅获取视频预览的一部分) @凌驾Android 使用dispatchDraw(Canvas)获取视频预览的分段,android,video,canvas,matrix,preview,Android,Video,Canvas,Matrix,Preview,以下是SurfaceView子类中重写的dispatchDraw。我正在尝试更改曲面的参数(仅获取视频预览的一部分) @凌驾 public void dispatchDraw (Canvas canvas) { Log.d(TAG,"**************inside dispatchDraw************"); int VIEW_WIDTH = canvas.getWidth(); int VIEW_HEIGHT
public void dispatchDraw (Canvas canvas) {
Log.d(TAG,"**************inside dispatchDraw************");
int VIEW_WIDTH = canvas.getWidth();
int VIEW_HEIGHT = canvas.getHeight();
Log.d(TAG,"**************inside dispatchDraw************" + Integer.toString(VIEW_WIDTH) + " ," + Integer.toString(VIEW_HEIGHT));
int newWidth = 400;
int newHeight = 240;
float scaleWidth = ((float) newWidth) / VIEW_WIDTH;
float scaleHeight = ((float) newHeight) / VIEW_HEIGHT;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
canvas.setMatrix(matrix);
super.dispatchDraw(canvas);
Log.d(TAG,"**************inside dispatchDraw-after super************");
}
为什么上面的代码根本不改变SurfaceView的维度?因为SurfaceView不使用视图层次结构的画布进行绘制。谢谢!但是如果它不使用画布,那么dispatchDraw中的参数指的是什么?SurfaceView将绘制到曲面中?我如何获得预览的一部分?我需要做什么我必须改变吗?