【发布时间】:2021-02-05 09:09:30
【问题描述】:
**我想把图片转换成base64字符串。请帮助我在 android studio 中编写代码
这是我的代码,可以在 kotlin android 中帮助我 我尝试了很多方法,但我无法得到它 你们能帮我吗? 我还想知道我需要在哪个函数中将图像转换为base64以及图像存储在哪里,我直接从图库中获取图像
**
private var uploadImageLabelText: TextView? = null
private var uploadImageBox: RelativeLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_support)
setStatusBarColorLight(R.color.dim_white)
uploadImageLabelText = getView(R.id.upload_image_label)
uploadImageBox = getView(R.id.upload_image_box)
uploadImageBox?.setOnClickListener {
requestExternalReadPermission()
private fun requestExternalReadPermission() {
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf<String>
(Manifest.permission.READ_EXTERNAL_STORAGE),
FG_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE
);
} else {
chooseFile()
}
}
private fun chooseFile() {
var chooseFile = Intent(Intent.ACTION_GET_CONTENT)
chooseFile.type = "*/*"
chooseFile = Intent.createChooser(chooseFile, "Select a file to
upload the image")
startActivityForResult(chooseFile,
SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int,
data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == SUPPORT_SCREEN_CHOOSE_UPLOAD_FILE_REQUEST_CODE &&
resultCode == RESULT_OK
) {
data?.data?.let { uri ->
uploadFileUri = uri
val cursor = contentResolver.query(uri, null, null, null,
null)
if (cursor != null) {
val nameIndex =
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
val sizeIndex =
cursor.getColumnIndex(OpenableColumns.SIZE)
cursor.moveToFirst()
val fileName = cursor.getString(nameIndex)
System.out.println(fileName)
setFileNameToUploadButton(fileName)
//saveFileToCache(cursor.getString(nameIndex))
} else {
val filePath = uri.path
var fileName = ""
val cut = filePath.lastIndexOf('/')
if (cut != -1) {
fileName = filePath.substring(cut + 1)
}
setFileNameToUploadButton(fileName)
System.out.println(fileName)
//saveFileToCache(fileName)
}
}
}
}
}
【问题讨论】:
-
这能回答你的问题吗? How to convert a file to Base64?
标签: android android-studio kotlin kotlin-coroutines