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.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.v4.view.WindowCompat;
|
import android.support.v4.view.WindowCompat;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
@ -382,7 +384,14 @@ public class VideoplayerActivity extends MediaplayerActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(Configuration newConfig) {
|
public void onConfigurationChanged(Configuration newConfig) {
|
||||||
super.onConfigurationChanged(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 {
|
private static class VideoControlsHider extends Handler {
|
||||||
|
|
|
@ -25,6 +25,8 @@ public class AspectRatioVideoView extends VideoView {
|
||||||
|
|
||||||
private int mVideoWidth;
|
private int mVideoWidth;
|
||||||
private int mVideoHeight;
|
private int mVideoHeight;
|
||||||
|
private float mAvailableWidth = -1;
|
||||||
|
private float mAvailableHeight = -1;
|
||||||
|
|
||||||
public AspectRatioVideoView(Context context) {
|
public AspectRatioVideoView(Context context) {
|
||||||
this(context, null);
|
this(context, null);
|
||||||
|
@ -48,8 +50,13 @@ public class AspectRatioVideoView extends VideoView {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float heightRatio = (float) mVideoHeight / (float) getHeight();
|
if (mAvailableWidth < 0 || mAvailableHeight < 0) {
|
||||||
float widthRatio = (float) mVideoWidth / (float) getWidth();
|
mAvailableWidth = getWidth();
|
||||||
|
mAvailableHeight = getHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
float heightRatio = (float) mVideoHeight / mAvailableHeight;
|
||||||
|
float widthRatio = (float) mVideoWidth / mAvailableWidth;
|
||||||
|
|
||||||
int scaledHeight;
|
int scaledHeight;
|
||||||
int scaledWidth;
|
int scaledWidth;
|
||||||
|
@ -94,4 +101,16 @@ public class AspectRatioVideoView extends VideoView {
|
||||||
invalidate();
|
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