1

我有一個顯示全屏videoView(但保持縱橫比)的活動。它完美地工作在Android 2.3.7,但我有在Android 4一些奇怪的問題(也可能是3,我沒有選中):顯示全屏視頻時出現問題查看並更改方向

  1. 出於某種原因,如果我設置的主題全屏幕,沒有標題欄(或動作條),我得到一個藍色ISH(或白色十歲上下?)梯度videoView下面,如下所示:

    weird gradient on full screen

    相關的佈局是在這裏:

    編輯:在android 3上,它不會發生。

  2. 當我將縱向從縱向更改爲橫向時,它會從頭開始重新加載整個視頻。在Android 2.3.7上,它沒有任何延遲,就好像沒有任何改變。

相關清單部分是在這裏:

​​

注意,在Android 3,旋轉平板電腦沒有做任何事情,所以沒有方向變化。

我應該如何處理這些問題? API演示似乎沒有更新以處理這些情況。我的項目進行了測試:nexus one(android 2.3.7),xoom(android 3),galaxy S3(android 4)。


爲了解決1號,我只是改變了這一切沒有任何背景的主題。奇怪的是,這是在設備上的這種方式。不知道在其他Android 4設備上是否如此。爲了創建主題,我已經創造了「RES /價值/」文件夾中的文件「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> 

當然,我還更新了清單以使用新的主題。

回答

1

當您更改設備方向時,Dalvik殺死活動並創建另一個垃圾回收器,垃圾回收器清理所有舊的東西。

我建議你迫使應用程序留在水平模式中,你可以做,在活動改變如下屬性:

<activity android:screenOrientation="landscape" /> 

如果你想在activy改變方向,你必須處理程序中的變化。您可以閱讀本文檔how to handling runtime changes

+0

但是在縱向模式下保持的設備呢?我不想強制用戶使用橫向模式。關於背景 –

0

恐怕我無法看到您在該圖像上談論的漸變。但是,如果它在整個屏幕上,那麼這可能是Holo主題的標準背景,您可以使用自定義主題將其刪除。

至於重新開始旋轉,您可以將當前時間保存在onConfigurationChanged(..),然後使用VideoView.seekTo(..)然後在代碼的適當部分將其恢復到正確的時間。但是,我不知道爲什麼會在ICS中發生這種情況,因爲您並未破壞活動。

+0

,這似乎是一個SGS3「問題」。關於視頻問題,你檢查過它嗎? –