1

全画面表示の videoView を表示するアクティビティがあります (ただし、アスペクト比は維持されます)。Android 2.3.7 では完全に動作しましたが、Android 4 では奇妙な問題がいくつかあります (おそらく 3 で、まだ確認していません):

  1. 何らかの理由で、テーマをタイトルバー (またはアクションバー) なしで全画面表示に設定すると、ここに示すように、videoView の下に青っぽい (または白っぽい?) グラデーションが表示されます。

    フルスクリーンでの奇妙なグラデーション

    関連するレイアウトは次のとおりです。

    編集: Android 3 では発生しません。

  2. 向きを縦向きから横向きに変更すると、ビデオ全体が最初から再ロードされます。Android 2.3.7 では、何も変わっていないかのように、遅延なく続行されました。

関連するマニフェストの部分は次のとおりです。

<activity android:name=".activities.player_activity.PlayerActivity" android:configChanges="keyboardHidden|orientation"
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" android:screenOrientation="sensor"/>

Android 3 では、タブレットを回転させても何も起こらないので、向きは変わりません。

これらの問題をどのように処理すればよいですか? API デモは、これらのケースを処理するように更新されていないようです。

私のプロジェクトは、nexus one (android 2.3.7)、xoom (android 3)、galaxy S3 (android 4) でテストされました。


1番を修正するために、背景のないテーマを単純に変更しました。デバイス上でこのようになっているのは奇妙です。他の Android 4 デバイスでもこのようになるのだろうか。テーマを作成するために、「res/values/」フォルダーに「theme.xml」というファイルを作成し、そこに次のように記述しました。

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.FullScreenNobarsNoBackground" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen">
    <item name="android:windowBackground">@null</item>
  </style>
</resources>

もちろん、新しいテーマを使用するようにマニフェストも更新しました。

4

2 に答える 2

1

デバイスの向きを変更すると、Dalvikはアクティビティを強制終了して別のアクティビティを作成し、ガベージコレクターはすべての古いものをクリーンアップします。

アプリケーションを強制的に水平モードのままにすることをお勧めします。これを行うと、アクティビティのフォロー属性を変更できます。

<activity android:screenOrientation="landscape" />

アクティビティで向きを変更したい場合は、変更を処理する必要があります。実行時の変更を処理する方法については、このドキュメントをお読みください。

于 2012-06-21T13:59:53.210 に答える
0

残念ながら、その画像ではあなたが話しているグラデーションが見えません。ただし、画面全体に表示される場合、これはおそらく Holo テーマの標準的な背景であり、カスタム テーマを使用して削除することができます。

ローテーションでの再起動については、現在の時刻を onConfigurationChanged(..) に保存してから VideoView.seekTo(..) を使用して、コードの適切な部分で正しい時刻に戻すことができます。ただし、アクティビティを破棄していないため、ICS でこれが発生する理由がわかりません。

于 2012-06-21T14:01:57.127 に答える