【问题标题】:Android app Image is not saving in specified Sd Card folder after Crop, Showing empty folder裁剪后Android应用图像未保存在指定的SD卡文件夹中,显示空文件夹
【发布时间】:2015-06-16 11:46:10
【问题描述】:

我正在使用我的 Android 应用程序中的相机拍摄图像。

然后裁剪图像。

裁剪后将图像保存在指定文件夹中。

文件夹正在创建,但图像没有保存在文件夹中。(它是空的)

帮我解决它

我用过的代码,

link referred

                    if (extras != null) {

                            Bitmap photooutput = extras.getParcelable("data");
                            // Camera Output

                            if (pick == 1) {

                                viewImage.setImageBitmap(photooutput);


                                String path = Environment.getExternalStorageDirectory().toString();
                                File m_imgDirectory = new File(path + "/WallPaper/");

                                if (!m_imgDirectory.exists()) m_imgDirectory.mkdir();

                                FileOutputStream m_fOut = null;
                                File directory2 = new File(path);
                                directory2.delete();
                                String m_fileid = System.currentTimeMillis() + "";
                                directory2 = new File(path, "/Wall/" + m_fileid + ".png");  


                                try
                                {
                                    if (!directory2.exists()) directory2.createNewFile();
                                    m_fOut = new FileOutputStream(directory2);      
                                    Bitmap m_bitmap = photooutput.copy(Bitmap.Config.ARGB_8888, true);
                                    m_bitmap.compress(Bitmap.CompressFormat.PNG, 100, m_fOut);
                                    m_fOut.flush();
                                    m_fOut.close();
                                    MediaStore.Images.Media.insertImage(getContentResolver(),
     directory2.getAbsolutePath(), directory2.getName(), directory2.getName());
                                }
                                catch (Exception p_e)
                                {
                                }
                        }
}

【问题讨论】:

    标签: android android-camera android-sdcard android-image


    【解决方案1】:

    使用 Android KitKat 及以上版本时,应用无法将文件保存到 SDCard。 检查这个Thread

    更新 将图像保存到内部存储:

    public static Uri saveImage(Bitmap bmp) {
        Uri uri = null;
        try {
            String name = System.currentTimeMillis() + ".jpg";
            //you can create a new file name "test.jpg" in sdcard folder.
            File f = new File(getImagesDir() + File.separator + name);
    
            f.createNewFile();
            //write the bytes in file
            FileOutputStream fo = new FileOutputStream(f);
            fo.write(bitmapToByteArray(bmp));
            // remember close de FileOutput
            fo.close();
    
            uri = Uri.parse("file://" + f.getPath());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    
        return uri;
    }
    
    public static String getImagesDir() {
        String rootDir = Environment.getExternalStorageDirectory().toString();
        rootDir = rootDir + "/MyApp/Media/Images";
    
        // Create directory if not existed
        File dir = new File(rootDir);
        if (!dir.exists()) {
            dir.mkdir();
        }
    
        return dir.getPath();
    }
    public static byte[] bitmapToByteArray(Bitmap bmp) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] byteArray = stream.toByteArray();
        return byteArray;
    }
    

    更新 2:添加了缺少的代码

    将以下权限添加到您的 AndroidManifest:

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

    【讨论】:

    • 然后如何将图像保存在我的 sdcard 或内存文件夹中。
    • 这里需要添加什么权限
    • 我已在清单中添加了此权限,但仍然无法正常工作。文件夹也没有创建
    • 你有什么异常吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多