1

我正在使用surfaceview播放本地mp4视频这是布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<SurfaceView
    android:id="@+id/surface"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
</SurfaceView>

</FrameLayout>

从代码我将全屏设置为surfaceview

    int height = getWindowManager().getDefaultDisplay().getHeight(); //metrics.heightPixels;
    int width = getWindowManager().getDefaultDisplay().getHeight(); //metrics.widthPixels;

    mPreview = (SurfaceView) findViewById(R.id.surface);
    LayoutParams lp = new FrameLayout.LayoutParams(width, height);

    mPreview.setLayoutParams(lp);
    holder = mPreview.getHolder();
    holder.addCallback(this);
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    //holder.setFixedSize(width, height);
    holder.setSizeFromLayout();

但是,现在的问题是视频没有全屏播放,视频上方出现黑屏。

截图http://i.imgur.com/WNFDM.png 如何播放全屏视频?

4

3 回答 3

5

不知道这是几岁..试试这个

requestWindowFeature(Window.FEATURE_NO_TITLE);  
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

在对活动的 onCreate 方法执行 setContentView 之前

于 2012-05-24T10:41:16.197 回答
2

尝试

  mPreview = (SurfaceView) findViewById(R.id.surface);
  LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

    mPreview.setLayoutParams(lp);
    holder = mPreview.getHolder();
    holder.addCallback(this);
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    holder.setSizeFromLayout();
于 2012-04-30T06:43:59.267 回答
0

你能试试这个。

            mPreview = (SurfaceView) findViewById(R.id.surface);
            holder = mPreview.getHolder();
            holder.addCallback(this);

根本不要设置宽度和高度......在你的oncreate中

于 2012-04-30T06:06:51.233 回答