안드로이드(Android)의 VideoView를 전체 화면에 맞게 생성해도 비디오는 비율에 맞춰서 늘어나기 때문에 빈 공간이 생깁니다. 아래 이미지처럼 말이죠.

modified_Screenshot_20151103-205522

아래 이미지처럼 전체 화면에 맞게 강제로 늘리고 싶다면 새로운 클래스를 생성해서 조절해 주면 됩니다.

modified_Screenshot_20151103-205331

동영상은 res/raw 폴더에 넣으면 됩니다.

<< MyVideoView.java >>

1
package 패키지경로;
1
<code lang="java" height="800">

import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.VideoView;

1
<code lang="java" height="800">

/**
* Created by Administrator on 2015-11-03.
*/
public class MyVideoView extends VideoView {
public MyVideoView(Context context) {
super(context);
init(context);
}

1
<code lang="java" height="800">

public MyVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}

1
<code lang="java" height="800">

public MyVideoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}

1
<code lang="java" height="800">

private void init(Context context) {
}

1
<code lang="java" height="800">

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//super.onMeasure(widthMeasureSpec, heightMeasureSpec);

1
 
1
2
3
4
5
6
7
        DisplayMetrics displayMetrics = new DisplayMetrics();
((WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;
setMeasuredDimension(deviceWidth, deviceHeight);
}
}

<< activity_main.xml >>

1
2
3
4
5
6
7
8
... 생략
&lt;패키지경로.MyVideoView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/videoView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" /&gt;

<< MainActivity.java >>

1
2
3
4
MyVideoView video = (MyVideoView)findViewById(R.id.videoView);
Uri videoURi = Uri.parse("android.resource://" + getPackageName() + "/raw/sample");
video.setVideoURI(videoURi);
video.start();