Сохраните представление ImageView внутри CardView с радиусом угла в android - PullRequest
0 голосов
/ 29 мая 2020

Я хочу сохранить представление как изображение, которое содержит ImageView внутри CardView. Я попытался сохранить представление, поскольку мы используем setDrawingCacheEnabled () перед созданием метода растрового изображения, но он не сохраняет изображение с радиусом угла.

Вот мой код для сохранения вида

public static Bitmap getBitmapFromView(View view) {

    view.setDrawingCacheEnabled(true);

    // Define a bitmap with the same size as the view
    Bitmap returnedBitmap = Bitmap.createBitmap(view.getDrawingCache());
    view.setDrawingCacheEnabled(false);
    return returnedBitmap;
}

Вот код для сохранения изображения, которое возвращается как растровое изображение.

public static File saveBitMap(Context context, View drawView){
    File pictureFileDir = new 
  File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"Collage_Maker");
    if (!pictureFileDir.exists()) {
        boolean isDirectoryCreated = pictureFileDir.mkdirs();
        if(!isDirectoryCreated)
            Log.i("TAG", "Can't create directory to save the image");
        return null;
    }
    String filename = pictureFileDir.getPath() +File.separator+ System.currentTimeMillis()+".jpg";
    File pictureFile = new File(filename);
    Bitmap bitmap =getBitmapFromView(drawView);
    try {
        pictureFile.createNewFile();
        FileOutputStream oStream = new FileOutputStream(pictureFile);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, oStream);
        oStream.flush();
        oStream.close();
        isImageCreated=true;
    } catch (IOException e) {
        e.printStackTrace();
        isImageCreated=false;
        Log.i("TAG", "There was an issue saving the image.");
    }
    scanGallery( context,pictureFile.getAbsolutePath());
    return pictureFile;
}

Это XML, содержащий внутренний вид карты ImageView.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_height="match_parent">

  <androidx.cardview.widget.CardView
      android:layout_margin="6dp"
      app:cardCornerRadius="20dp"
      android:id="@+id/CardCollageOne"
      android:background="@android:color/transparent"
      android:layout_width="match_parent"
      android:layout_height="match_parent">

  <ImageView
      android:id="@+id/collageOne"
      android:layout_width="match_parent"
      android:scaleType="centerCrop"
      android:layout_height="match_parent"

    />

   </androidx.cardview.widget.CardView>


</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...