Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

657
Vistas
Android Jetpack Compose: la imagen no se puede escalar al ancho y alto del cuadro

Se creó la vista ImageCard para crear la lista en la redacción de jetpack de Android, pero algunas imágenes no pueden rayar el ancho y la altura del widget Box.

Usando una imagen de 640 * 427 y una salida como la imagen 1.
Usando una imagen de 6720 * 4480 y se ve bien como la imagen 2.

Utilice el siguiente código para crear ImageCard.

Uso de la función ImageCard: llamar a la función ImageCardData en la función setContent{}

 @Composable fun ImageCard( painter: Painter, title: String, contentDescription: String, modifier: Modifier = Modifier ) { Card( modifier = modifier.fillMaxWidth(), shape = RoundedCornerShape(10.dp), elevation = 5.dp ) { Box( modifier = Modifier.height(200.dp) ) { Image( painter = painter, contentDescription = contentDescription, contentScale = ContentScale.Crop ) Box( modifier = Modifier .fillMaxSize() .background( brush = Brush.verticalGradient( colors = listOf( Color.Transparent, Color.Black ), startY = 50f ) ) ) Box( modifier = Modifier .fillMaxSize() .padding(12.dp), contentAlignment = Alignment.BottomStart ) { Text( text = title, style = TextStyle(color = Color.White, fontSize = 16.sp) ) } } } } @Composable fun ImageCardData() { val painter = painterResource(id = R.drawable.engagement) val title = "Sample Text Title" val description = "This is sample Image Description" Box( modifier = Modifier .fillMaxWidth() .padding(16.dp) ) { ImageCard( painter = painter, title = title, contentDescription = description ) } } 

over 4 years ago · Hanz Gallego
2 Respuestas
Responde la pregunta

0

El tamaño de la vista de su imagen se calcula por su contenido, porque no tiene modificadores de tamaño.

Agregue fillMaxSize a la imagen:

 Image( painter = painter, contentDescription = contentDescription, contentScale = ContentScale.Crop, modifier = Modifier.fillMaxSize() )
over 4 years ago · Hanz Gallego Denunciar

0

Depende de la implementación de la Image con un Painter .

Crea un componible que presenta y dibuja un Painter determinado. Esto intentará dimensionar el componible de acuerdo con el tamaño intrínseco del Painter . Sin embargo, se puede proporcionar un parámetro Modifier opcional para ajustar el tamaño o dibujar contenido adicional (por ejemplo, fondo)

Significa que al usar una imagen de 640*427 en un contenedor principal con dimensiones más grandes, el tamaño componible de la Image es el tamaño original de Painter .
El factor de escala aplicado por ContentScale se basa en estas dimensiones y origen = destino y no cambia el tamaño intrínseco del Pintor original.

 Image( painter = painter, contentDescription = contentDescription, contentScale = ContentScale.Crop )

ingrese la descripción de la imagen aquí

Usando una imagen de 6720*4480, el tamaño de la Image es más grande que el contenedor principal y, de esta manera, la composición de la Image llena todo el espacio disponible.

En tu caso puedes resolver usando el modificador fillMaxWidth() en tu Image

 Image( modifier =Modifier.fillMaxWidth(), painter = painter, contentDescription = contentDescription, contentScale = ContentScale.Crop )

De esta forma, la Image componible llena el espacio principal.

ingrese la descripción de la imagen aquí

over 4 years ago · Hanz Gallego Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda