最近在做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>