Aktivität sollte transparent sein, aber hat schwarzen hintergrund
Mein use-case ist das schreiben einer overlay-controller-Tätigkeit für eine Landschaft, die Kamera-Vorschau. Ich folgte den Anweisungen von ein paar tutorials für das schreiben einer transparenten Thema.
Also mein res/values/style.xml sieht wie folgt aus:
<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>
Die Aktivität snippet:
<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>
Wenn ich dieses Tätigkeit aus meinem root-Aktivität, das layout wird korrekt gezeichnet, aber der hintergrund bleibt schwarz. Ich habe versucht, zu verwenden @android:style/Theme.Translucent
statt, aber dieses Thema erbt die Orientierung aus der Aufruf-Aktivität (Landschaft), und das ist nicht das, was ich will.
Edit:
Die Anwendung, die die Kamera-Vorschau auf Querformat festgelegt ist Blick, wie es nicht angezeigt wird die Vorschau korrekt in das hochformat. (siehe alte google-bug-report)
Was ich tun wollte war, um eine unabhängige Aktivität, die für die Interaktion der Nutzer-interface vor die Kamera-Oberfläche-Halter (diese Tätigkeit sollte auf 'portrait', oder noch besser, 'sensor')
InformationsquelleAutor Uwe Krass | 2010-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, die gebaut-in
@android:style/Theme.Translucent
statt Ihre eigenen, nach in diesem blog-post. Ich habe nicht versucht, diese selbst zu tun, also ich weiß nicht, ob die Technik, die darüber geschrieben es funktioniert oder nicht.Das hat nichts zu tun mit dem hintergrund. Wenn Sie nicht möchten, dass Ihre Aktivität zu ändern, Orientierung, behandelt andere Möglichkeiten, wie
android:screenOrientation="portrait"
in Ihrem manifest.Sorry, dass ich nicht erwähnt habe, aber das ist genau das, was ich getan habe. (Ich werde den Beitrag editieren mit meinem manifest). Danke für Eure Ratschläge bisher.
InformationsquelleAutor CommonsWare
Fand ich heraus, dass ein weiterer wichtiger child-element für den Stil, die Beschreibung oben ist
<item name="android:windowIsTranslucent">true</item>
fehlte.Problem:
Dass Kind-element bewirkt auch, dass die Synchronisierung der Aktivität Orientierung, mit der Berufung ein. (gleiche Wirkung wie
@android:style/Theme.Translucent
)InformationsquelleAutor Uwe Krass
Ich stieß in das gleiche problem wie Sie es beschreiben (in Bezug auf durchscheinendem hintergrund und Bildschirm-Orientierung), aber am Ende habe ich versöhnt mit der Tatsache, dass dies ist nur, wie es funktioniert. In der Tat macht es wirklich Sinn, dass es funktioniert auf diese Weise. Ich kann mir nicht vorstellen, dass es eine screen-basierte system, das mischen unterstützt hoch-und Querformat, also warum sollte Android?
Ich denke, die Allgemeine Regel ist, dass alle sichtbaren Aktivitäten müssen die gleiche Orientierung unabhängig von der Attribute in der manifest-Datei. Wenn alle gesetzt sind, um
"sensor"
dann werden Sie alles ändern, wenn man fest auf portrait oder Landschaft, dann die anderen müssen Folgen (und wer setzt es die Letzte "gewinnt").Ich denke, das war einfach so offensichtlich für die Entwickler, dass es nicht auftreten, um Sie zu dokumentieren 🙂
InformationsquelleAutor hermo
Entfernen und von von allen seinen gemacht
InformationsquelleAutor Shargon