어질어질
50
2021-03-15 14:48:04
0
104

안드로이드 캡처 이미지 이름 입력 후 저장되는데 자꾸 덮어쓰기가 됩니다ㅠㅠ


미치겠어요ㅠㅠ 자꾸 덮어쓰기 밖에 안됩니다 페이지를 이동하면 다르게 저장되는데 같은 곳에서 저장 누르고 네이밍 다르게 해도 자꾸 덮어써집니다ㅠㅠ 도와주세요ㅠㅠ

findViewById<Button>(R.id.button_screenshot).setOnClickListener { view ->
val dialog = AlertDialog.Builder(this)
val et = EditText(this)

dialog.setMessage("이미지 저장")
et.hint = "파일 이름 입력"
dialog.setView(et)
dialog.setPositiveButton("확인", DialogInterface.OnClickListener { dialog, which ->
if(et.text.isEmpty() || et.text.toString() == "") {
Toast.makeText(this, "파일 이름을 입력해주세요.", Toast.LENGTH_SHORT).show()
} else {
ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE), FLAG_WRITE_EXTERNAL_STORAGE)
val rootView = window.decorView
val screenShot = findViewById<MapView>(R.id.map_view)?.screenShot(rootView, et.text)
sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(screenShot)))
Toast.makeText(this, "저장되었습니다.", Toast.LENGTH_SHORT).show()

}
})

dialog.setNegativeButton("취소", DialogInterface.OnClickListener{ dialog, which ->

})
dialog.show()
fun screenShot(view: View, text: Editable): File? {
view.isDrawingCacheEnabled = true //화면에 뿌릴때 캐시를 사용하게 한다
val screenBitmap = view.drawingCache //캐시를 비트맵으로 변환
val filename = "${text}_Screenshot.png"
val file = File(Environment.getExternalStorageDirectory().toString() + "/Pictures", filename) //Pictures폴더 screenshot.png 파일
var os: FileOutputStream? = null

try {
os = FileOutputStream(file)
screenBitmap.compress(Bitmap.CompressFormat.PNG, 90, os) //비트맵을 PNG파일로 변환
os.close()

} catch (e: IOException) {
e.printStackTrace()
return null
}
view.isDrawingCacheEnabled = false
return file
}
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.