нужна помощь при сохранении файлов изображений - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь сохранить изображение панели подписи в файл, но мое приложение, похоже, не создает каталог в storage/emulated/0

, это то, что я использую для создания папки ...

    String DIRECTORY = Environment.getExternalStorageDirectory().getPath() + "/Signature/";
    String pic_name = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.getDefault()).format(new Date());
    String StoredPath = DIRECTORY + pic_name + ".png";

и это то, что я использую для создания каталога

        file = new File(DIRECTORY);
        if (!file.exists()) {
            file.mkdir();
        }

и, наконец, это место, где файл сохраняется ...

        public void save(View v, String StoredPath) {
            Log.v("log_tag", "Width: " + v.getWidth());
            Log.v("log_tag", "Height: " + v.getHeight());
            if (bitmap == null) {
                bitmap = Bitmap.createBitmap(canvasLL.getWidth(), canvasLL.getHeight(), Bitmap.Config.RGB_565);
            }
            Canvas canvas = new Canvas(bitmap);
            try {
                // Output the file
                FileOutputStream mFileOutStream = new FileOutputStream(StoredPath);
                v.draw(canvas);

                // Convert the output file to Image such as .png
                bitmap.compress(Bitmap.CompressFormat.PNG, 90, mFileOutStream);
                mFileOutStream.flush();
                mFileOutStream.close();

            } catch (Exception e) {
                Log.v("log_tag", e.toString());
            }

        }

Пожалуйстаобратите внимание, что это не мой собственный код ... (в основном копирование и вставка из) http://demonuts.com/android-capture-signature-using-canvas/

Панель работает нормально, я могу написать на нем, но не будет сохранять :( Когда я отправляюЯ могу вернуть полный каталог и имя файла Storage/emulated/0/Signature/20191101_a time stamp.png, но он не сохранится на устройстве.

Есть идеи ??

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Спасибо всем за помощь ... моей проблемой было создание диска для сохранения. Я нашел свой ответ на https://www.quora.com/How-do-I-create-a-folder-in-internal-and-external-storage-programmatically-in-an-Android-app

Теперь я смогу создать и сохранить файл благодаря

0 голосов
/ 02 ноября 2019

Объявите разрешения в файле AndroidManifest.xml. Чтобы предоставить внешнему хранилищу разрешение на чтение для чтения.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Для версии ОС Android> 6.0 вам также потребуются разрешения времени выполнения .

// Check whether this app has write external storage permission or not.
int permission = ContextCompat.checkSelfPermission(ExternalStorageActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

// If do not grant write external storage permission.
if(permission!= PackageManager.PERMISSION_GRANTED)
{
    // Request user to grant write external storage permission.
    ActivityCompat.requestPermissions(ExternalStorageActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE_WRITE_EXTERNAL_STORAGE_PERMISSION);
}
...