Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

652
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!