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

modified_Screenshot_20151103-205522

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

modified_Screenshot_20151103-205331

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

<< MyVideoView.java >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package 패키지경로;

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

/**
 * Created by Administrator on 2015-11-03.
 */

public class MyVideoView extends VideoView {
    public MyVideoView(Context context) {
        super(context);
        init(context);
    }

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

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

    private void init(Context context) {
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        //super.onMeasure(widthMeasureSpec, heightMeasureSpec);
       
        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
... 생략
<패키지경로.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" />

<< 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();