2010-04-22 79 views
6

我的用例是爲橫向攝像機預覽編寫覆蓋控制器活動。我按照一些教程的指導編寫了透明主題。活動應該是透明的,但有黑色背景

所以我RES /價值/ style.xml看起來是這樣的:

<resources> 

    <style name="Theme" parent="android:Theme" /> 

    <style name="Theme.Transparent"> 
     <item name="android:windowBackground">@drawable/transparent_background</item> 
    </style> 

    <drawable name="transparent_background">#00000000</drawable> 

</resources> 

活動片段:

<activity android:name=".CameraPreview" 
     android:label="Camera" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".Controlls" 
       android:label="Controlls" 
       android:screenOrientation="portrait" 
       android:theme="@android:style/Theme.Translucent"> 
    </activity> 

當我開始從我的根系活力這一活動,佈局得到正確繪製,但背景保持黑色。我嘗試使用@android:style/Theme.Translucent來代替,但是這個主題繼承了調用活動(風景)的方向,那不是我想要的。

編輯:

應用拿着相機預覽設置爲橫向視圖,因爲它不會在縱向方向正確顯示預覽。 (請參閱old google bug report

我想做的是在相機表面固定器前放置一個用戶交互界面的獨立活動(此活動應該設置爲「肖像」,或者更好地設置爲「傳感器」)

回答

2

根據this blog post,嘗試使用內置的@android:style/Theme.Translucent而不是定製的。我沒有試圖自己做這件事,所以我不知道寫在那裏的技術是否有效。

+0

@android:風格/ Theme.Translucent是透明的,但將視圖修復爲基礎活動的方向(我的橫向視圖相機預覽)。這個觀點應該是肖像。 – 2010-04-22 08:17:15

+0

這與您的背景無關。如果您不希望自己的活動改變方向,那麼您的清單中的其他方式(如android:screenOrientation =「portrait」)就可以處理該方向。 – CommonsWare 2010-04-22 10:36:46

+0

對不起,我沒有提到它,但那正是我所做的。 (我將用我的清單編輯帖子)。感謝您的建議。 – 2010-04-22 19:12:45

1

我發現,上述樣式描述的另一個重要的子元素是<item name="android:windowIsTranslucent">true</item>缺乏。

問題:

那子元素也引起了與調用一個同步活動的方向。 (與@android:style/Theme.Translucent效果相同)

1

我遇到了與您所描述的相同的問題(關於半透明背景和屏幕方向),但最終我認爲這只是它的工作原理。事實上,它是有道理的,它以這種方式工作。我無法想象任何支持混合縱向和橫向視圖的基於屏幕的系統,那麼爲什麼要安卓?

我想一般的規則是,無論清單文件中的屬性如何,所有可見的活動都必須具有相同的方向。如果全部設置爲"sensor"那麼它們將全部改變,如果其中一個被固定爲縱向或橫向,則其他人必須跟隨(以及誰將其最後設置爲「勝利」)。

我想這只是如此明顯的開發商,它沒有想到他們記錄它:)

0

刪除及其所有做

@Override 
public void onAttachedToWindow() {} 
+4

請詳細解釋您的代碼。 – 2012-10-26 11:21:46

相關問題