問題が発生しています。onResume が呼び出された後、メディア プレーヤーのアスペクト比がめちゃくちゃになる
private void aspectRatio(MediaPlayer vp)
{
Integer videoHeight;
Integer videoWidth;
//Obtain current video's dimensions for keeping aspect Ration the same on all devices
videoHeight = vp.getVideoHeight();
videoWidth = vp.getVideoWidth();
//Get width of screen
Integer screenWidth = getWindowManager().getDefaultDisplay().getWidth();
Integer screenHeight = getWindowManager().getDefaultDisplay().getHeight();
Log.i("AspectRatio VP WxH", videoHeight.toString() +" x " + videoWidth.toString());
Log.i("AspectRatio Screen WxH", screenHeight.toString() + " x " + screenWidth.toString());
ViewGroup.LayoutParams viewParameters = view.getLayoutParams();
float ratioWidth = (float)screenWidth/(float)videoWidth;
float ratioHeight = (float)screenHeight/(float)videoHeight;
float aspectRatio = (float)videoWidth/(float)videoHeight;
if(ratioWidth>ratioHeight)
{
viewParameters.width = (int)(screenHeight * aspectRatio);
viewParameters.height= screenHeight;
}
else if(ratioWidth < ratioHeight)
{
viewParameters.width = screenWidth;
viewParameters.height = (int) (screenHeight / aspectRatio);
}
Integer x = viewParameters.width;
Integer y = viewParameters.height;
Log.i("Screen", x.toString() + " " + y.toString());
view.setLayoutParams(viewParameters);
}
これは、アスペクト比を取得してそれを私の surfaceView に入れる関数でした。問題は、 onResume() の後、その幅が想定よりもはるかに小さいことです。何が悪いのか分かりますか?