항상 새 이름으로 이미지를 저장하고 이전 이름을 삭제하는 방법 (Android)

안드로이드 질문

같은 이름으로 이미지를 저장하고 갤러리 의도로 보내는 배경 화면 앱을 작업 중입니다.

모든 이미지를 같은 이름으로 저장하기 때문에 갤러리 의도에서 매번 같은 이미지를 얻는 데 문제가 있습니다.

무슨 일이 일어나고 있는지 새로운 이미지가 대체되지만 갤러리 의도에서 오래된 이미지를 얻고 있습니다. 새 이미지가 이전 이미지를 대체하지만 여전히 갤러리 의도에 새 이미지 대신 이전 이미지가 표시됨

그래서 매번 새 이름으로 이미지를 저장하고 이전에 저장된 이미지도 삭제하고 싶습니다.

참고 : 항상 이미지를 image ++로 저장하고 이전 이미지도 삭제하십시오.

내 코드 :

public void setAsWallpaper(Bitmap bitmap) {

        String dirname2 = "/Wallpaper/";

        File myDir2 = new File(Environment.getExternalStorageDirectory()
                .getPath() + dirname2);

        myDir2.mkdirs();

        String fname2 = "image" + ".jpg";
        File file2 = new File(myDir2, fname2);

        if (file2.exists())
            file2.delete();
        try {
            FileOutputStream out = new FileOutputStream(file2);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
            out.flush();
            out.close();
            success = true;

        } catch (Exception e) {
            Toast.makeText(_context, "failed", Toast.LENGTH_SHORT).show();
        }

        if (success) {

            Intent intent = new Intent();
             intent.setAction(Intent.ACTION_ATTACH_DATA);
             intent.setDataAndType(Uri.parse("file://"
             + "/sdcard/Wallpaper/image.jpg"), "image/*");
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             _context.startActivity(intent);

        } else {

            Toast.makeText(_context, "failed", Toast.LENGTH_SHORT).show();

        }

    }
하산

이미지의 원래 이름이없는 경우 매개 변수로 메소드에 보낼 수 있습니다. 그런 다음 임의의 파일 이름을 생성하는 다음 방법 :

public String random() {
    Random generator = new Random();
    StringBuilder randomStringBuilder = new StringBuilder();
    int randomLength = generator.nextInt(MAX_LENGTH);
    char tempChar;
    for (int i = 0; i < randomLength; i++){
        tempChar = (char) (generator.nextInt(96) + 32);
        randomStringBuilder.append(tempChar);
    }
    return randomStringBuilder.toString();
}

나는 보통 내 폴더의 모든 파일을 던지고 거기에서 모든 이미지를 삭제합니다 (항상 하나의 이미지 임). 그런 다음 다음과 같이 임의의 이름으로 새 이름을 저장하십시오.

public void setAsWallpaper(Bitmap bitmap) {

    String dirname2 = "/Wallpaper/";

    File myDir2 = new File(Environment.getExternalStorageDirectory()
            .getPath() + dirname2);
    // delete folder and all files in it. then re-create it.
    if(myDir2.exists()) {
        String[] myFiles = myDir2.list();  
         for (int i=0; i<myFiles.length; i++) {  
             File myFile = new File(myDir2, myFiles[i]);   
             myFile.delete();  
         }
         myDir2.delete();
    }
    myDir2.mkdirs();

    String fname2 = random() + ".jpg";
    File file2 = new File(myDir2, fname2);

    if (file2.exists())
        file2.delete();
    try {
        FileOutputStream out = new FileOutputStream(file2);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
        out.flush();
        out.close();
        success = true;

    } catch (Exception e) {
        Toast.makeText(_context, "failed", Toast.LENGTH_SHORT).show();
    }

    if (success) {

        Intent intent = new Intent();
         intent.setAction(Intent.ACTION_ATTACH_DATA);
         intent.setDataAndType(Uri.parse("file://"
         + "/sdcard/Wallpaper/" + fname2), "image/*");
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         _context.startActivity(intent);

    } else {

        Toast.makeText(_context, "failed", Toast.LENGTH_SHORT).show();

    }

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

크기가 조정 된 버전을 새 이름으로 저장하여 이미지 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

새 이름으로 이전 이름을 변경하는 비단 법적인 방법

분류에서Dev

gedit가 실행될 때 항상 새로운 이름없는 파일을 여는 것을 방지하는 방법

분류에서Dev

헤더 이름으로 열을 삭제하는 방법

분류에서Dev

사용자 지정 이름으로 이미지를 저장하는 방법

분류에서Dev

새 이미지를 업데이트하는 동안 저장된 이미지를 삭제하고 싶습니다.

분류에서Dev

이미지, Android로 앱 이름을 변경하는 방법

분류에서Dev

PHP 및 ImageMagick을 사용하여 이미지의 크기를 재귀 적으로 조정하고 이름을 지정할 때 기존 파일 이름 및 확장자를 기반으로 새 파일을 작성하는 가장 좋은 방법

분류에서Dev

이미지를 90도 회전하고 저장하는 방법

분류에서Dev

기존 Excel 파일을 사용하여 데이터를 저장하고 새 이름으로 저장

분류에서Dev

객체 이름에 따라 자동으로 XML 파일을 저장하고 이름을 바꾸는 방법

분류에서Dev

새 폴더에 이미지를 저장하는 방법 MATLAB

분류에서Dev

증가 된 이름으로 파일을 저장하는 방법

분류에서Dev

새 사용자 이름이 .txt 파일에 제출 될 때 이전 사용자 이름을 삭제하는 방법은 무엇입니까?

분류에서Dev

Android에서 이미지 파일을 저장하지 않고 이미지를 얻는 방법

분류에서Dev

데이터 증가 후 이미지를 반복하지 않고 새 폴더에 저장하는 방법

분류에서Dev

지점 이름에 이상한 문자가있는 로컬 자식 지점을 삭제하는 방법

분류에서Dev

PhpStorm : 드롭 다운에서 다른 변수를 선택할 때 이전 이름을 새 이름으로 대체하도록 설정하는 방법

분류에서Dev

파일 이름으로 상수 이름을 얻는 방법

분류에서Dev

Javascript에서 이름으로 캐싱을 삭제하는 방법-PWA

분류에서Dev

나머지 파일을 방해하지 않고 줄 이름을 새 이름 집합으로 바꿉니다.

분류에서Dev

프로 시저 이름을 문자열로 전달하지 않고 저장소 패턴을 사용하여 저장 프로 시저를 호출하는 방법

분류에서Dev

이전 csv를 덮어 쓰지 않고 csv를 새 csv로 저장하는 방법이 있습니까?

분류에서Dev

브랜치 이름을 입력하지 않고 내 저장소를 업스트림 버전으로 하드 리셋하는 방법이 있습니까?

분류에서Dev

DataGridView에서 열 이름으로 새 셀을 추가하는 방법

분류에서Dev

요청을 경로 이름으로 전달하는 방법

분류에서Dev

새 Firebase 저장소에서 이미지를 다운로드하고 보는 방법은 무엇입니까?

분류에서Dev

PHP에서 삭제하지 않고 .txt 상단에 새 데이터를 추가하는 방법

분류에서Dev

Android : 사진을 찍고 해당 이미지를 프로그래밍 방식으로 특정 이름으로 내부 / 외부 저장소에 저장 하시겠습니까?

Related 관련 기사

  1. 1

    크기가 조정 된 버전을 새 이름으로 저장하여 이미지 크기를 조정하는 방법은 무엇입니까?

  2. 2

    새 이름으로 이전 이름을 변경하는 비단 법적인 방법

  3. 3

    gedit가 실행될 때 항상 새로운 이름없는 파일을 여는 것을 방지하는 방법

  4. 4

    헤더 이름으로 열을 삭제하는 방법

  5. 5

    사용자 지정 이름으로 이미지를 저장하는 방법

  6. 6

    새 이미지를 업데이트하는 동안 저장된 이미지를 삭제하고 싶습니다.

  7. 7

    이미지, Android로 앱 이름을 변경하는 방법

  8. 8

    PHP 및 ImageMagick을 사용하여 이미지의 크기를 재귀 적으로 조정하고 이름을 지정할 때 기존 파일 이름 및 확장자를 기반으로 새 파일을 작성하는 가장 좋은 방법

  9. 9

    이미지를 90도 회전하고 저장하는 방법

  10. 10

    기존 Excel 파일을 사용하여 데이터를 저장하고 새 이름으로 저장

  11. 11

    객체 이름에 따라 자동으로 XML 파일을 저장하고 이름을 바꾸는 방법

  12. 12

    새 폴더에 이미지를 저장하는 방법 MATLAB

  13. 13

    증가 된 이름으로 파일을 저장하는 방법

  14. 14

    새 사용자 이름이 .txt 파일에 제출 될 때 이전 사용자 이름을 삭제하는 방법은 무엇입니까?

  15. 15

    Android에서 이미지 파일을 저장하지 않고 이미지를 얻는 방법

  16. 16

    데이터 증가 후 이미지를 반복하지 않고 새 폴더에 저장하는 방법

  17. 17

    지점 이름에 이상한 문자가있는 로컬 자식 지점을 삭제하는 방법

  18. 18

    PhpStorm : 드롭 다운에서 다른 변수를 선택할 때 이전 이름을 새 이름으로 대체하도록 설정하는 방법

  19. 19

    파일 이름으로 상수 이름을 얻는 방법

  20. 20

    Javascript에서 이름으로 캐싱을 삭제하는 방법-PWA

  21. 21

    나머지 파일을 방해하지 않고 줄 이름을 새 이름 집합으로 바꿉니다.

  22. 22

    프로 시저 이름을 문자열로 전달하지 않고 저장소 패턴을 사용하여 저장 프로 시저를 호출하는 방법

  23. 23

    이전 csv를 덮어 쓰지 않고 csv를 새 csv로 저장하는 방법이 있습니까?

  24. 24

    브랜치 이름을 입력하지 않고 내 저장소를 업스트림 버전으로 하드 리셋하는 방법이 있습니까?

  25. 25

    DataGridView에서 열 이름으로 새 셀을 추가하는 방법

  26. 26

    요청을 경로 이름으로 전달하는 방법

  27. 27

    새 Firebase 저장소에서 이미지를 다운로드하고 보는 방법은 무엇입니까?

  28. 28

    PHP에서 삭제하지 않고 .txt 상단에 새 데이터를 추가하는 방법

  29. 29

    Android : 사진을 찍고 해당 이미지를 프로그래밍 방식으로 특정 이름으로 내부 / 외부 저장소에 저장 하시겠습니까?

뜨겁다태그

보관