Well, I'm too late to answer, but since I received from Grafika , you can use this function
private void adjustAspectRatio(int videoWidth, int videoHeight) { int viewWidth = mTextureView.getWidth(); int viewHeight = mTextureView.getHeight(); double aspectRatio = (double) videoHeight / videoWidth; int newWidth, newHeight; if (viewHeight > (int) (viewWidth * aspectRatio)) { // limited by narrow width; restrict height newWidth = viewWidth; newHeight = (int) (viewWidth * aspectRatio); } else { // limited by short height; restrict width newWidth = (int) (viewHeight / aspectRatio); newHeight = viewHeight; } int xoff = (viewWidth - newWidth) / 2; int yoff = (viewHeight - newHeight) / 2; Log.v(TAG, "video=" + videoWidth + "x" + videoHeight + " view=" + viewWidth + "x" + viewHeight + " newView=" + newWidth + "x" + newHeight + " off=" + xoff + "," + yoff); Matrix txform = new Matrix(); mTextureView.getTransform(txform); txform.setScale((float) newWidth / viewWidth, (float) newHeight / viewHeight); //txform.postRotate(10); // just for fun txform.postTranslate(xoff, yoff); mTextureView.setTransform(txform); }
source share