代码之家  ›  专栏  ›  技术社区  ›  ARR.s

如何将图像保存在特定文件夹中android

  •  0
  • ARR.s  · 技术社区  · 7 年前

    我是安卓编程的新手

    我可以将图像保存到我的设备

    但我不知道如何创建特定的文件夹,如何创建文件夹??

    谢谢你的帮助!

    对不起,我的英语不好。

    CapturePhotoUtils.insertImage(context.getContentResolver(), myBitmap, title ,des);
    

    和CapturePhotoUtils.java

    public class CapturePhotoUtils {
    
    
        public static final String insertImage(ContentResolver cr,
                                               Bitmap source,
                                               String title,
                                               String description) {
    
            ContentValues values = new ContentValues();
            values.put(Images.Media.TITLE, title);
            values.put(Images.Media.DISPLAY_NAME, title);
            values.put(Images.Media.DESCRIPTION, description);
            values.put(Images.Media.MIME_TYPE, "image/jpeg");
            // Add the date meta data to ensure the image is added at the front of the gallery
            values.put(Images.Media.DATE_ADDED, System.currentTimeMillis());
            values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
    
            Uri url = null;
            String stringUrl = null;    /* value to be returned */
    
            try {
                url = cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    
                if (source != null) {
                    OutputStream imageOut = cr.openOutputStream(url);
                    try {
                        source.compress(Bitmap.CompressFormat.JPEG, 50, imageOut);
                    } finally {
                        imageOut.close();
                    }
    
                    long id = ContentUris.parseId(url);
                    // Wait until MINI_KIND thumbnail is generated.
                    Bitmap miniThumb = Images.Thumbnails.getThumbnail(cr, id, Images.Thumbnails.MINI_KIND, null);
                    // This is for backward compatibility.
                    storeThumbnail(cr, miniThumb, id, 50F, 50F,Images.Thumbnails.MICRO_KIND);
                } else {
                    cr.delete(url, null, null);
                    url = null;
                }
            } catch (Exception e) {
                if (url != null) {
                    cr.delete(url, null, null);
                    url = null;
                }
            }
    
            if (url != null) {
                stringUrl = url.toString();
            }
    
            return stringUrl;
        }
    
        private static final Bitmap storeThumbnail(
                ContentResolver cr,
                Bitmap source,
                long id,
                float width,
                float height,
                int kind) {
    
            // create the matrix to scale it
            Matrix matrix = new Matrix();
    
            float scaleX = width / source.getWidth();
            float scaleY = height / source.getHeight();
    
            matrix.setScale(scaleX, scaleY);
    
            Bitmap thumb = Bitmap.createBitmap(source, 0, 0,
                    source.getWidth(),
                    source.getHeight(), matrix,
                    true
            );
    
            ContentValues values = new ContentValues(4);
            values.put(Images.Thumbnails.KIND,kind);
            values.put(Images.Thumbnails.IMAGE_ID,(int)id);
            values.put(Images.Thumbnails.HEIGHT,thumb.getHeight());
            values.put(Images.Thumbnails.WIDTH,thumb.getWidth());
    
            Uri url = cr.insert(Images.Thumbnails.EXTERNAL_CONTENT_URI, values);
    
            try {
                OutputStream thumbOut = cr.openOutputStream(url);
                thumb.compress(Bitmap.CompressFormat.JPEG, 100, thumbOut);
                thumbOut.close();
                return thumb;
            } catch (FileNotFoundException ex) {
                return null;
            } catch (IOException ex) {
                return null;
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   AskNilesh    7 年前

    试试这个

    addToFav("/Favorite", "add to favoriote");
    

    创建此函数

        public void addToFav(String dirName, String str) {
    
        String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date());
        String fileName = "fav" + timeStamp + ".JPG";
    
    
        File direct = new File(Environment.getExternalStorageDirectory() + dirName);
    
        if (!direct.exists()) {
            File wallpaperDirectory = new File(Environment.getExternalStorageDirectory() + dirName);
            wallpaperDirectory.mkdirs();
        }
    
        File file = new File(new File(Environment.getExternalStorageDirectory() + dirName), fileName);
        if (file.exists()) {
            file.delete();
        }
        try {
            FileOutputStream out = new FileOutputStream(file);
    
            Bitmap bitmap = BitmapFactory.decodeFile(imagesPathArrayList.get(pos));
            bitmap.compress(Bitmap.CompressFormat.JPEG, 20, out);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    
        ContentValues values = new ContentValues();
        values.put(Images.Media.TITLE, "title");
        values.put(Images.Media.DESCRIPTION, "description");
        values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
        values.put(Images.ImageColumns.BUCKET_ID, file.toString().toLowerCase(Locale.US).hashCode());
        values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, file.getName().toLowerCase(Locale.US));
        values.put("_data", file.getAbsolutePath());
        ContentResolver cr = getContentResolver();
        cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    
      }
    

    不要忘记在清单文件中添加权限