Zoom Camera2 Preview, используя TextureView
У меня проблема с моим предварительным просмотром для Camera2 API. Я использую TextureView.
Я хочу увеличить только предварительный просмотр потока, который был показан в TextureView.
Я хочу увеличить область, в которой я использую жест масштабирования.
Я использую SimpleOnScaleGestureListener!
Я добавил следующий код. Коэффициент масштабирования и Положение х и у справа.
private void updateTextureViewSize(float xPosi,float yPosi, float scale){
float scaleX = 1.0f;
float scaleY = 1.0f;
float mVideoWidth = mCamcontrol.getmPreviewSize().getWidth();
float mVideoHeight = mCamcontrol.getmPreviewSize().getHeight();
int rotation = getWindowManager().getDefaultDisplay().getRotation();
RectF viewRect = new RectF(0, 0, 1440, 2560);
RectF bufferRect = new RectF(0, 0, mVideoHeight, mVideoWidth);
bufferRect.offset(xPosi - bufferRect.centerX(), yPosi - bufferRect.centerY());
//16:9 faktor
scaleX = ((mScale * scale) / 9f) * 16f;
scaleY = ((mScale * scale) / 16f) * 9f;
Matrix matrix = new Matrix();
matrix.setRectToRect(bufferRect, viewRect, Matrix.ScaleToFit.FILL);
scalefactorView.setText(String.valueOf(xPosi) + " " + String.valueOf(yPosi));
matrix.setScale(scaleY, scaleX, xPosi, yPosi);
matrix.postRotate(90 * (rotation - 2), xPosi, yPosi);
mTextureView.setTransform(matrix);
}
Масштабирование Право, но не Положение, в котором я Масштаб. Например! Когда я увеличиваю положение вправо / влево, я вижу только левый / верхний прямоугольник потока.
Я добавилследующие фотографии чтобы понять проблему.