Glance proporciona una API para administrar el tema de color. Para otros atributos de estilo,
como TextStyle
, declara las variables de nivel superior.
Agrega colores
Glance proporciona una implementación de los colores de Material desde el primer momento. Para usar
tema integrado, une tu elemento componible de nivel superior con GlanceTheme
, como se muestra en
en el siguiente ejemplo.
En los dispositivos que admiten colores dinámicos, este tema deriva de la
colores de la plataforma
específicos del usuario. En otros dispositivos, se recurre a Material.
el tema del modelo de referencia. Usa GlanceTheme.colors
para aplicar estilos con los colores del ajuste
el tema. Puedes usar estos valores del tema siempre que necesites un color.
override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme { MyContent() } } } @Composable private fun MyContent() { Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
Para personalizar el tema, puedes pasar el colors
a GlanceTheme
. Vistazo
proporciona la biblioteca de interoperabilidad de androidx.glance:glance-material
para
Material 2 y androidx.glance:glance-material3
para los colores de Material 3
y asistencia.
Por ejemplo, proporciona los colores de material existentes de tu app al elemento ColorProviders
.
API para crear un esquema de colores de Glance, como se muestra en el siguiente fragmento:
// Remember, use the Glance imports // import androidx.glance.material3.ColorProviders // Example Imports from your own app // import com.example.myapp.ui.theme.DarkColors // import com.example.myapp.ui.theme.LightColors object MyAppWidgetGlanceColorScheme { val colors = ColorProviders( light = LightColors, dark = DarkColors ) }
Proporciona los colores del esquema al GlanceTheme
que une todos tus
componibles, como se muestra en el siguiente ejemplo:
override suspend fun provideGlance(context: Context, id: GlanceId) { // ... provideContent { GlanceTheme(colors = MyAppWidgetGlanceColorScheme.colors) { MyContent() } } } @Composable private fun MyContent() { Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
Si prefieres usar colores dinámicos del fondo de pantalla cuando sea compatible y las
esquema de colores de la app; de lo contrario, puedes pasar de forma condicional el esquema de colores de tu app
en el GlanceTheme
. Esto se muestra en el siguiente fragmento:
override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { GlanceTheme( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) GlanceTheme.colors else MyAppWidgetGlanceColorScheme.colors ) { MyContent() } } } @Composable private fun MyContent() { // ... Image( colorFilter = ColorFilter.tint(GlanceTheme.colors.secondary), // ... ) }
Cómo agregar formas
Para proporcionar formas o sombras especiales al widget de tu app, usa el la API de Drawables.
Por ejemplo, en el siguiente fragmento, se muestra cómo crear un elemento de diseño (una forma):
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="16dp"/>
<stroke android:color="@color/outline_color" android:width="1dp"/>
</shape>
Proporciona la información al elemento componible de destino:
GlanceModifier.background( imageProvider = ImageProvider(R.drawable.button_outline) )