‘как преобразовать макет в квадратное изображение в Android

#android

#Android

Вопрос:

Я попытался успешно преобразовать макет в квадратное изображение, но квадратное изображение, которое я нашел, слишком плохое.

 fun getBitmapFromView(view: View): Bitmap? {
    val bitmap =
        Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
    val canvas = Canvas(bitmap)
    view.draw(canvas)
    val newBitmap = BITMAP_RESIZER(bitmap, 1080, 1080)
    return newBitmap
}

fun bitmapResizer(bitmap: Bitmap, newWidth: Int, newHeight: Int): Bitmap? {
    val scaledBitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888)
    val ratioX = newWidth / bitmap.width.toFloat()
    val ratioY = newHeight / bitmap.height.toFloat()
    val middleX = newWidth / 2.0f
    val middleY = newHeight / 2.0f
    val scaleMatrix = Matrix()
    scaleMatrix.setScale(ratioX, ratioY, middleX, middleY)
    val canvas = Canvas(scaledBitmap)
    canvas.setMatrix(scaleMatrix)
    canvas.drawBitmap(
        bitmap,
        middleX - bitmap.width / 2,
        middleY - bitmap.height / 2,
        Paint(Paint.FILTER_BITMAP_FLAG)
    )
    return scaledBitmap
}
 

вот мой макет

здесь я нашел квадратное изображение, но не идеальное

Я хочу преобразовать макет в изображение в квадрат.

Ответ №1:

Если я правильно понял ваш вопрос, я бы посоветовал вам сначала изменить поле на квадрат, прежде чем преобразовывать макет в изображение. Таким образом, остальной материал не будет искажен таким образом, и вам не нужно беспокоиться об изменении размера изображения после захвата.

Комментарии:

1. Да, вы все правильно поняли. это возможно без изменения поля на квадратное?

2. У вас есть доступ к макету коробки, чтобы изменить его на квадратный? Это было бы проще всего.

3. Если у вас есть пример. Итак, дайте мне, тогда я попробую.