[Android实例] 视频播放三种设置全屏适应不同分辨率显示器

最近在做Android上播放音频的功能,需要视频全屏播放,自己研究了一下,随便总结了如下3种设置方式,大家都来交流交流, 如果满意请顺便给分享谢谢~~~


第一种方式
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
注意:一定要在setContentView之前加入上面的信息。不然不会实现其效果。

第二种方式
在AndroidManifest.xml文件中定义
<application android:icon="@drawable/icon"
        android:label
="@string/app_name"
        
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">


第三种方式
自己重写一个方法 获取屏幕大小去改写
public class MyVideoView extends VideoView {
    public static int WIDTH;
    public static int HEIGHT;
    public MyVideoView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int width = getDefaultSize(WIDTH, widthMeasureSpec);
        int height = getDefaultSize(HEIGHT, heightMeasureSpec);
        setMeasuredDimension(width, height);
    }
}
主程序
public class MovieOpenActivity extends Activity implements
        OnCompletionListener, OnErrorListener {
    private MyVideoView mVideoView;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.movie);
        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        String movieUrl = bundle.getString("movieUrl");

         DisplayMetrics dm = new DisplayMetrics();
         this.getWindowManager().getDefaultDisplay().getMetrics(dm);
         MyVideoView.WIDTH=dm.widthPixels;
         MyVideoView.HEIGHT=dm.heightPixels;
         mVideoView = (MyVideoView) findViewById(R.id.videoView1);
         mVideoView.setMediaController(new MediaController(this));
         mVideoView.setOnCompletionListener(this);
         mVideoView.setOnErrorListener(this);
         mVideoView.setVideoPath(movieUrl);
         mVideoView.requestFocus();
         mVideoView.start();
    }
    public void onCompletion(MediaPlayer mp) {
        finish();
    }
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        Log.v("this is error", "onError method is called!!");

        if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) {
            Log.v("this is error", "Media Error,Server Died" + extra);
        } else if (what == MediaPlayer.MEDIA_ERROR_UNKNOWN) {
            Log.v("this is error", "Media Error,Error Unknown" + extra);
        }
        Toast.makeText(MovieOpenActivity.this, "视频播放错误,请重新选择!",
                Toast.LENGTH_LONG).show();
        return false;
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
配置文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <com.smit.util.MyVideoView
        android:id="@+id/videoView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
</LinearLayout>

你可能感兴趣的:([Android实例] 视频播放三种设置全屏适应不同分辨率显示器)