일전에 클립보드에 대하여 포스팅을 한 적이 있는데 샘플 소스로 텍스트를 예로 들어 작성했었다. 이번 포스팅에선 텍스트 외에 이미지(Uri)를 처리하는 방법을 작성해보고자 한다.
ClipboardManager 사용법은 이전 포스팅 참고바랍니다.
우선 코드는 Glide를 통해 이미지를 다운로드한 뒤 클립보드에 넣는 방식으로 작성하였다.
Thread {
val bitmap = Glide.with(this@MainActivity)
.asBitmap()
.load("Image download url")
.submit()
.get()
val file = File(filesDir.path.plus("/images${Random.nextInt(999)}.jpg")).also { it.createNewFile() }
FileOutputStream(file).use { fos ->
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos)
}
val clipData = ClipData.newUri(
contentResolver,
"URI",
FileProvider.getUriForFile(this@MainActivity, BuildConfig.FileProvider, file)
)
clipManager.setPrimaryClip(clipData)
Handler(Looper.getMainLooper()).post {
Toast.makeText(this@MainActivity, "Copy from web image!", Toast.LENGTH_SHORT).show()
}
}.start()
코드는 크게 어렵지 않다.
결과캡쳐를 올릴려고 했는데 다음 기화에 올려보겠다..