如何使用滑行从本地存储中加载图像
我想从图片目录加载一张图像到 imageView 。使用此代码我总是收到错误,但是文件存在。
这是非常原始的例子。更大的项目需要它,但我想让它尽可能简单。
build.gradle(模块 - 代码的唯一重要部分):
android {
compileSdk 32
defaultConfig {
minSdk 28
targetSdk 32
versionCode 1
dependencies {
implementation "com.github.bumptech.glide:glide:4.13.0"
}
glide 4.13.0 应该是最新版本
AndroidActivity.xml(仅重要部分):
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true"
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 999) // to get permission read from external storage
val image1: ImageView = findViewById(R.id.imageView)
val file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()).list()?.get(0)
Glide.with(this)
.asBitmap()
.load(file)
.into(image1)
}
当我调试代码时,我看到该变量 file
存在且其名称为 IMG_20220317_085955.jpg
错误消息:
java.io.FileNotFoundException(open failed: ENOENT (No such file or directory))
call GlideException#logRootCauses(String) for more detail
Cause (1 of 1): class java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
I/Glide: Root cause (1 of 3)
java.io.FileNotFoundException: /IMG_20220317_085955.jpg: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:492)
I would like to load to imageView one image from pictures directory. With this code I alway get error, however the file exist.
This is very primitive example. It is needed for bigger project, but I want to make it as simple as possible.
build.gradle (module - only important part of code):
android {
compileSdk 32
defaultConfig {
minSdk 28
targetSdk 32
versionCode 1
dependencies {
implementation "com.github.bumptech.glide:glide:4.13.0"
}
glide 4.13.0 should be lattest version
AndroidActivity.xml(only important part):
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true"
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 999) // to get permission read from external storage
val image1: ImageView = findViewById(R.id.imageView)
val file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()).list()?.get(0)
Glide.with(this)
.asBitmap()
.load(file)
.into(image1)
}
When I debug my code I see that variable file
exists and its name is IMG_20220317_085955.jpg
Error message:
java.io.FileNotFoundException(open failed: ENOENT (No such file or directory))
call GlideException#logRootCauses(String) for more detail
Cause (1 of 1): class java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
I/Glide: Root cause (1 of 3)
java.io.FileNotFoundException: /IMG_20220317_085955.jpg: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:492)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要获取完整路径,我使用
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
将生成路径Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).list()?.get(0)
get第一张图片(如果存在)To get full path I used
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
will generate pathEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).list()?.get(0)
get first image (if exists)