Fixed scaling of video
This commit is contained in:
parent
bad964508a
commit
7e72ff0b0e
|
@ -8,8 +8,10 @@ import android.os.Build;
|
|||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.v4.view.WindowCompat;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
|
@ -382,7 +384,14 @@ public class VideoplayerActivity extends MediaplayerActivity {
|
|||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
//TODO
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
|
||||
// This is only relevant for picture in picture
|
||||
DisplayMetrics dm = getResources().getDisplayMetrics();
|
||||
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, newConfig.screenWidthDp, dm);
|
||||
float py = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, newConfig.screenHeightDp, dm);
|
||||
videoview.setAvailableSize(px, py);
|
||||
}
|
||||
}
|
||||
|
||||
private static class VideoControlsHider extends Handler {
|
||||
|
|
|
@ -25,6 +25,8 @@ public class AspectRatioVideoView extends VideoView {
|
|||
|
||||
private int mVideoWidth;
|
||||
private int mVideoHeight;
|
||||
private float mAvailableWidth = -1;
|
||||
private float mAvailableHeight = -1;
|
||||
|
||||
public AspectRatioVideoView(Context context) {
|
||||
this(context, null);
|
||||
|
@ -48,8 +50,13 @@ public class AspectRatioVideoView extends VideoView {
|
|||
return;
|
||||
}
|
||||
|
||||
float heightRatio = (float) mVideoHeight / (float) getHeight();
|
||||
float widthRatio = (float) mVideoWidth / (float) getWidth();
|
||||
if (mAvailableWidth < 0 || mAvailableHeight < 0) {
|
||||
mAvailableWidth = getWidth();
|
||||
mAvailableHeight = getHeight();
|
||||
}
|
||||
|
||||
float heightRatio = (float) mVideoHeight / mAvailableHeight;
|
||||
float widthRatio = (float) mVideoWidth / mAvailableWidth;
|
||||
|
||||
int scaledHeight;
|
||||
int scaledWidth;
|
||||
|
@ -94,4 +101,16 @@ public class AspectRatioVideoView extends VideoView {
|
|||
invalidate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the maximum size that the view might expand to
|
||||
* @param width
|
||||
* @param height
|
||||
*/
|
||||
public void setAvailableSize(float width, float height) {
|
||||
mAvailableWidth = width;
|
||||
mAvailableHeight = height;
|
||||
requestLayout();
|
||||
invalidate();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue