Как добавить растровое изображение в определенный альбом в галерее? - PullRequest
1 голос
/ 22 апреля 2019

Я пробовал много способов, но все они не работают.Я хочу создать конкретный альбом и сохранить растровое изображение в формате JPEG.

Я использую Xamarin.Что мне делать?

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Я написал демо об этом.

Я помещаю картинку в папку ресурсов, затем я прочитаю ее в растровое изображение

 btnSelectImage = (Button)FindViewById(Resource.Id.btnSelectImage);
        Bitmap bitmap = BitmapFactory.DecodeResource(this.ApplicationContext.Resources , Resource.Drawable.splashlogo);
        btnSelectImage.Click += (o, e) =>
        {
            saveImageToGally(bitmap, this);
        };

, а затем отправлю в определенный альбом в галерее.,

enter image description here

Код указан.

public void saveImageToGally(Bitmap finalBitmap,Context context)
    {
        //create a directory called MyCamera
        string root = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDcim).ToString() + "/MyCamera/";

       //create the Directory
        System.IO.Directory.CreateDirectory(root);

        File myDir = new File(root);
        myDir.Mkdir();
        //Image name
        string fname = "Image-" + "Image1" + ".png";
        File file = new File(myDir, fname);
        Log.Error("FilePath", file.AbsolutePath);

        if (file.Exists()) file.Delete();
        Log.Error("FilePath", root + fname);
        //total path
        string path = root + fname;

        try
        {


            var fs = new System.IO.FileStream(path, System.IO.FileMode.OpenOrCreate);
            if (fs != null)
            {
                finalBitmap.Compress(Bitmap.CompressFormat.Png, 90, fs);
                fs.Close();
            }

        }
        catch (Exception e)
        {
            e.PrintStackTrace();

        }

        MediaScannerConnection.ScanFile(context, new string[] { file.Path }, new string[] { "image/jpeg" }, null);

    }

Пожалуйста, не забудьте добавить следующее разрешение.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
0 голосов
/ 23 апреля 2019

Обратите внимание, что вы должны предоставлять разрешения для внешнего хранилища во время выполнения, поскольку они являются критическими разрешениями!

Подробнее о можно прочитать здесь .

...