【问题标题】:Android - Fullscreen Layout for VideoViewAndroid - VideoView 的全屏布局
【发布时间】:2014-11-23 14:32:59
【问题描述】:

我想以正常尺寸纵向显示我的视频,并以全尺寸横向显示我的视频。因此,当用户开始以纵向观看并切换到横向(旋转设备)时,它会进入全屏状态;反之亦然,它会恢复到原始大小。我检查了互联网,但找不到一个很好的例子。我的代码如下。

VideoActivity.java:

公共类 VideoActivity 扩展 Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_video);


        Bundle bund = getIntent().getExtras();
        String s = bund.getString("LINK");
        VideoView videoView = (VideoView) findViewById(R.id.videoView);
        MediaController controller = new MediaController(this);
        videoView.setVideoPath(s);
        videoView.setMediaController(controller);
        videoView.start();
    }
}

activity_video.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}"
    android:background="#000000"
    >

    <VideoView
        android:id="@+id/videoView"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerInParent="true"

         />

</RelativeLayout>

基本上。当用户开始播放视频时,它可以是原始大小(如果是纵向模式),但每当他转动手机时,我希望它自动全屏显示。当转回纵向时,又是原来的大小。

谢谢。

【问题讨论】:

    标签: android fullscreen android-videoview landscape


    【解决方案1】:

    values 文件夹中创建一个名为 bools.xml 的新文件,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
        <resources>
        <item type="bool" name="isPortLayout">true</item>
    </resources>
    

    values-land 文件夹中创建另一个名为 bools.xml 的文件,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
        <resources>
        <item type="bool" name="isPortLayout">false</item>
    </resources>
    

    现在在您的活动中调用setContentView 获取此资源并根据其值将Activity 设置为全屏与否:

    boolean isPortLayout = getResources().getBoolean(R.bool.isLargeLayout);
    if(isPortLayout) {
        // PORT
    } else {
        // LAND
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    

    设置VideoView 的宽度和高度match_parent

    【讨论】:

    • 答案基于我对另一个问题的回答:stackoverflow.com/questions/27020276/…
    • 你能贴一张它是什么的屏幕截图并解释它应该是什么吗?
    • 我已经上传了截图并在那里给出了另一个解释。基本上当视频播放时,如果它是纵向模式,我希望它是原始大小;但如果横向全屏视频。当用户旋转手机时,它应该总是改变,即使在玩游戏时也是如此。
    • 因为video with/height ratio 不等于screen's width/screen height ratio,您将始终有空白边距,否则您的视频必须被拉伸。所以让你的背景变黑,视频视图的宽度和高度match_parent。我这样做了,没关系。
    • 那里有问题,当我这样做时,纵向也是全屏。我希望它只在景观中充满
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多