Сохраните растровое изображение Canvas вместе с краской. Предложения? - PullRequest
0 голосов
/ 04 ноября 2018

Итак, я кодировал это приложение, в котором пользователь может добавлять маркер на ImageView каждый раз, когда пользователь нажимает кнопку «Добавить кнопку контрольной точки» (посмотрите на скриншоты) . Добавление дополнительных маркеров соединит эти маркеры через линию. Изображение масштабируемое, подвижное и вращающееся.

Теперь я хочу сохранить копию изображения вместе с этими маркерами. И разрешение должно совпадать с оригиналом. У меня есть следующее, которое делает это , но сохраняет только то, что видимо пользователю. Скрытая часть НЕ сохраняется.

Это моя функция -

  private void saveFunction() {

  Bitmap bitmap = iv.getDrawingCache(true);

  BitmapDrawable drawable = (BitmapDrawable) iv.getDrawable();
    Bitmap newBitmap = drawable.getBitmap();*//*
    String path = Environment.getExternalStorageDirectory().getAbsolutePath();
    File file = new File(path + File.separator + "name" + ".png");
    Toast.makeText(getApplicationContext(), file.getAbsolutePath(), Toast.LENGTH_LONG).show();
    try {
        if (!file.exists())

        {
            file.createNewFile();
        }
        FileOutputStream ostream = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.PNG, 40, ostream);
        ostream.close();
        System.out.println("Rushi : saveFunction : saved");
    } catch (Exception e) {
        e.printStackTrace();
    }

}

This is when I drag the image out of the screen, only the visible part is stored in my device storage. I don't want that.

...