es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo recortar la barra de estado o barra de acción de un mapa de bits?

Estoy tomando una captura de pantalla de la pantalla del móvil y obtengo un mapa de bits como resultado.

Quiero recortar la barra de estado o de navegación de ese mapa de bits. ¿Cómo puedo hacer eso? Intenté la solución anterior, pero no es precisa.

  ¿bitmap.let {
                         cropimg = Bitmap.createBitmap(
                                it,
                                0,
                                56+28,//cada móvil tiene una altura diferente para la barra de acción y la barra de estado
                                it.width,
                                it.height -(56+28)
                            )
                        }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto/a en Android y mapas de bits, sugiero la siguiente solución para recortar la barra de estado o de navegación de un mapa de bits:

    1. Obtenga la altura de la barra de estado o de navegación mediante el siguiente código:
    val resourceId = resources.getIdentifier("status_bar_height", "dimen", "android")
    val statusBarHeight = if (resourceId > 0) resources.getDimensionPixelSize(resourceId) else 0
    
    1. Después de obtener la altura, puede ajustar su código de recorte en consecuencia. Por ejemplo, si desea recortar la barra de estado del mapa de bits, puede modificar el código de la siguiente manera:
    bitmap?.let {
        cropimg = Bitmap.createBitmap(
            it,
            0,
            statusBarHeight,
            it.width,
            it.height - statusBarHeight
        )
    }
    
    1. De manera similar, si desea recortar la barra de navegación del mapa de bits, puede obtener su altura mediante el siguiente código:
    val resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android")
    val navigationBarHeight = if (resourceId > 0) resources.getDimensionPixelSize(resourceId) else 0
    
    1. Luego, modifique el código de recorte para recortar la barra de navegación de la siguiente manera:
    bitmap?.let {
        cropimg = Bitmap.createBitmap(
            it,
            0,
            0,
            it.width,
            it.height - navigationBarHeight
        )
    }
    

    Al utilizar este enfoque, debería poder recortar con precisión la barra de estado o de navegación del mapa de bits.

Comments are closed.