gpt4 book ai didi

java - Android 不在图库中创建文件夹

转载 作者:行者123 更新时间:2023-11-30 00:41:40 25 4
gpt4 key购买 nike

我正在尝试将 JPG 格式的图像保存到我图库中的特定文件夹中。但是我的代码没有创建目录,每当我创建一个 Toast 时,它都会为我返回/storage/emulated/0/DCIM/MyFodler,但是我什么时候打开画廊,这个 foder 不存在。我正在使用 Android Marshmallow 6.0 直接在我的设备上构建应用程序。

创建位图的代码:

    private Bitmap getToBitmap(ImageView view, int Width, int Heigth){
Bitmap bitmap = Bitmap.createBitmap(Width,Heigth, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}

尝试将图像保存在图库中的代码:

    private void TrySaveMediaStore(){
String path = Environment.getExternalStorageDirectory().toString();
OutputStream FileOut = null;
File file = new File(path,"DCIM/MyFolder");
file.mkdirs();
Toast.makeText(getApplicationContext(),file.getAbsolutePath(),Toast.LENGTH_SHORT).show();

try{
FileOut = new FileOutputStream(file);
FileOut.flush();
FileOut.close();
Bitmap bitmap = getToBitmap(img,img.getMaxWidth(),img.getMaxHeight());
bitmap.compress(Bitmap.CompressFormat.JPEG,100,FileOut);
MediaStore.Images.Media.insertImage(getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
Toast.makeText(this,file.getAbsolutePath(),Toast.LENGTH_SHORT).show();
}catch (FileNotFoundException e){
return;
}catch (IOException e){
e.printStackTrace();
}

}

Androidmanifest 权限:

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

最佳答案

DCIM/MyFolder 是一个目录。您可以使用 mkdirs() 将其创建为一个目录。

然后您不能尝试使用 DCIM/MyFolder 作为保存 JPEG 的文件名。您需要在目录中创建一个文件。

所以,而不是:

FileOut = new FileOutputStream(file);

使用类似的东西:

File theActualImageFile=new File(file, "something.jpeg");
FileOut = new FileOutputStream(theActualImageFile);

还有:

关于java - Android 不在图库中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com