Преобразуйте ConstraintLayout в изображение и сохраните его - PullRequest
0 голосов
/ 29 февраля 2020

Здравствуйте,

Итак, я делаю приложение для редактирования фотографий. Я добавляю два изображения рядом в ConstraintLayout. Поэтому мне нужно конвертировать мой ConstraintLayout в изображение и сохранить его в галерее. Возможно ли это?

Снимок экрана здесь

ConstraintLayout:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#f3f3f3">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@color/colorPrimary"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="16:13"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/tv_image1"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="2dp"
            android:layout_marginStart="4dp"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="4dp"
            android:scaleType="centerCrop"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/tv_image2"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:layout_height="0dp"
            tools:layout_width="0dp"
            android:src="@drawable/gatotriste"/>

        <ImageView
            android:id="@+id/tv_image2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="4dp"
            android:layout_marginStart="2dp"
            android:layout_marginTop="4dp"
            android:layout_marginBottom="4dp"
            android:scaleType="centerCrop"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toEndOf="@+id/tv_image1"
            app:layout_constraintTop_toTopOf="parent"
            tools:layout_editor_absoluteY="0dp"
            tools:layout_height="0dp"
            tools:layout_width="0dp"
            android:src="@drawable/gatotriste" />
    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

Thx!

1 Ответ

0 голосов
/ 29 февраля 2020

Передайте представление ограничения и получите из него битовую карту, запишите растровое изображение в файл и сохраните его. Я использовал те же логи c для создания шаблонов изображений (изображение + текст)

   public static Bitmap getBitMapFromView(View view){

    //Define a bitmap with the same size as the view
    Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
    //Bind a canvas to it
    Canvas canvas = new Canvas(returnedBitmap);
    //Get the view's background
    Drawable bgDrawable =view.getBackground();
    if (bgDrawable!=null)
        //has background drawable, then draw it on the canvas
        bgDrawable.draw(canvas);
    else
        //does not have background drawable, then draw white background on the canvas
        canvas.drawColor(Color.WHITE);
    // draw the view on the canvas
    view.draw(canvas);
    //return the bitmap
    return returnedBitmap;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...