2

アプリケーションの短い紹介ビデオを再生しようとしています。ゲームなので、まずはアクションバーを非表示にして全画面表示にするテーマを作成しました。

スタイル.xml:

<style name="AppTheme.NoTitleBar" parent="AppTheme">
    <item name="android:windowNoTitle">true</item>
</style>

<style name="AppTheme.NoTitleBar.Fullscreen" parent="AppTheme.NoTitleBar">
    <item name="android:windowFullscreen">true</item>
</style>

次に、次のものだけでレイアウトを作成しましたVideoView

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/black"
    tools:context=".MainActivity" >

    <VideoView
        android:id="@+id/videoView_intro"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp" />

</RelativeLayout>

最後に、次のコードでビデオを再生しました。

MainActivity.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    VideoView v = (VideoView) findViewById(R.id.videoView_intro);
    v.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.intro));
    /* This line had a code snippet for event handling, unrelated to this question */
    v.start();
}

動画の再生には成功しましたが、VideoView の下部にわずかな余白がありました。通知バーの高さと一致すると思います。どうすればそのマージンを取り除くことができますか?

編集:この情報が必要かどうかはわかりませんが、アクティビティは風景として強制されます。また、API レベル 8 以降のすべての Android デバイスを対象としているため、ソリューションは API レベル 8 と互換性がある必要があります。

AndroidManifest.xml:

    <activity
        android:name="org.package.name.MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:theme="@style/AppTheme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
4

3 に答える 3

2

OK、この考えを思いついたとき、私はばかになったと思います。

問題は通知バーに関するものではありませんでした。代わりに、それはビデオのアスペクト比に関するものでした。

動画のサイズは 480×272 です。それは約の縦横比を持っていました。1.7647。一方、Galaxy Nexus の使用可能な画面サイズは 1184×720 で、縦横比は約 2.5 インチです。1.6444。だから、基本的にビデオは画面よりも「長い」ものでした。

理由はわかりませんでした: 1) 不思議なことに余白の高さが通知バーの高さとほぼ一致したため、および 2) ビデオは電話よりも画面が狭いシステムの録画だったので、私は知りませんでした。それが原因だとは思いません。(エンコーダーは、想定されるアスペクト比を破りました。)

結論として、私が調べる必要があるのはこの記事です:ランドスケープモードでのビデオビューのセンター

教訓は、自分の仮説に深く入り込みすぎないことです。

于 2013-08-03T13:20:26.093 に答える