一、实现效果
一个简单的demo。点击按钮,获取本地文件目录,可以选择图片,展示选取的对应图片和展示存储路径。如图所示:

二、实现方式
1. 权限
androidmanifest.xml文件里面添加权限
<uses-permission android:name="android.permission.read_external_storage" /> <uses-permission android:name="android.permission.write_external_storage" />
2. 布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.constraintlayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mainactivity">
<imageview
android:id="@+id/main_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintbottom_tobottomof="parent"
app:layout_constraintend_toendof="parent"
app:layout_constraintstart_tostartof="parent"
app:layout_constrainttop_totopof="parent" />
<button
android:id="@+id/main_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/file_store"
android:textsize="20sp"
app:layout_constraintbottom_tobottomof="parent"
app:layout_constraintend_toendof="parent"
app:layout_constraintstart_tostartof="parent"
app:layout_constrainttop_totopof="@+id/main_iv"/>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/main_tx"
tools:ignore="missingconstraints" />
</androidx.constraintlayout.widget.constraintlayout>3. kotlin代码
class mainactivity : appcompatactivity() {
private lateinit var btn2: button
private lateinit var ivimage: imageview
private lateinit var btx:textview
private lateinit var activityresultlauncher: activityresultlauncher<intent>
@suppresslint("missinginflatedid")
override fun oncreate(savedinstancestate: bundle?) {
super.oncreate(savedinstancestate)
setcontentview(r.layout.activity_main)
btn2 = findviewbyid(r.id.main_btn)
ivimage = findviewbyid(r.id.main_iv)
btx=findviewbyid(r.id.main_tx)
activityresultlauncher = registerforactivityresult(activityresultcontracts.startactivityforresult()) { result ->
if (result.resultcode == result_ok) {
log.e(this::class.java.name, "result: " + result.data.tostring())
// 处理返回的图片数据
val uri: uri? = result.data?.data
uri?.let {
ivimage.setimageuri(it)
log.e(this::class.java.name, "uri: $it")
// 获取并显示图片的路径
btx.text=getpathfromuri(it)
}
}
}
btn2.setonclicklistener {
val intent = intent(intent.action_pick).apply {
data = mediastore.images.media.external_content_uri
type = "image/*"
}
activityresultlauncher.launch(intent)
}
}
//返回图片的路径字符串
private fun getpathfromuri(uri:uri):string{
return uri.path?:"unknown"
}
}以上就是全部内容
主页有更多 android 相关文章,欢迎点赞收藏~
到此这篇关于android如何获取本地文件目录的文章就介绍到这了,更多相关android获取本地文件目录内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论