La actividad debe ser transparente, pero tiene fondo negro

Mi caso de uso es escribir una actividad de controlador de superposición para una vista previa de cámara de paisaje. Seguí las instrucciones de un par de tutoriales para escribir un tema transparente.

Así que mi res / values ​​/ style.xml se parece a esto:

<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> 

El fragmento de actividad:

  <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> 

Cuando inicie esta actividad desde mi actividad raíz, el diseño se dibuja correctamente, pero el fondo permanece negro. Intenté usar @android:style/Theme.Translucent en @android:style/Theme.Translucent lugar, pero este tema hereda la orientación de la actividad llamante (landscape) y eso no es lo que quiero.

Editar:

La aplicación que contiene la vista previa de la cámara se ajusta a la vista horizontal ya que no muestra la vista previa correctamente en la orientación vertical. (Ver el informe de error de google antiguo )

Lo que quería hacer era poner una actividad independiente para la interfaz de interacción del usuario frente al soporte de la superficie de la cámara (esta actividad debería estar en 'retrato', o incluso mejor en 'sensor')

Pruebe el built-in @android:style/Theme.Translucent lugar de su personalizado, de acuerdo con esta entrada del blog . No he intentado hacer esto yo mismo, así que no sé si la técnica escrita sobre allí trabaja o no.

Me enteré de que faltaba otro elemento hijo importante para la descripción de estilo anterior <item name="android:windowIsTranslucent">true</item> .

Problema:

Ese elemento secundario también provoca la sincronización de la orientación de la actividad con el llamante. (El mismo efecto que @android:style/Theme.Translucent )

Me topé con el mismo problema que usted describe (con respecto a fondo translúcido y la orientación de la pantalla), pero al final me reconcilié con el hecho de que esto es sólo cómo funciona. De hecho, realmente tiene sentido que funcione de esta manera. No puedo pensar en cualquier sistema basado en la pantalla que apoya la mezcla de vistas de retrato y paisaje, así que ¿por qué Android?

Supongo que la regla general es que todas las actividades visibles deben tener la misma orientación, independientemente de los atributos en el archivo de manifiesto. Si todos están ajustados a "sensor" entonces todos cambiarán, si uno está fijado en el retrato o el paisaje, entonces los demás deben seguir (y quien quiera que sea el último "gana").

Supongo que esto era tan obvio para los desarrolladores que no se les ocurrió a documentarlo 🙂

Eliminar y todo su hecho

 @Override public void onAttachedToWindow() {} 
  • ScrollView dos ediciones de edición de EditTexts
  • Mostrar barra de estado en Android en la aplicación PhoneGap (es decir, evitar la pantalla completa)
  • No se puede resolver com.parse.ParseQueryAdapter
  • No se puede encontrar la clase RecyclerView android.support.v7.recyclerview.R $ styleable
  • Evitar que un FloatingActionButton se desplace dentro de ViewPager
  • Adición de la vista de desplazamiento al diseño lineal dinámicamente
  • Incorporar una vista personalizada dentro de un WebView
  • Adición de filas de tabla dinámicamente en Android
  • Cómo reemplazar la vista mediante programación en Android?
  • ¿Cómo configurar el botón tiene la imagen y la sombra?
  • ¿Una vista de reciclador frente al diseño lineal dentro de una vista de desplazamiento?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.