使用 BitmapFactory.decodeFile 找不到 Android Studio 文件异常
Posted
技术标签:
【中文标题】使用 BitmapFactory.decodeFile 找不到 Android Studio 文件异常【英文标题】:Android Studio file not found Exception using BitmapFactory.decodeFile 【发布时间】:2016-02-21 15:23:12 【问题描述】:我正在尝试使用
将图像加载到 imageView位图 myBitmap = BitmapFactory.decodeFile("Fotos/i0.png");
ImageView myImage = (ImageView) findViewById(R.id.im1);
myImage.setImageBitmap(myBitmap);
使用 AVE 运行时,这些行会导致异常 java.io.FileNotFoundException:/Fotos/i0.png:打开失败:ENOENT(没有这样的文件或目录)
我尝试了几个位置来放置文件: 应用程序\src\main\照片\ 应用\src\main\res\照片\
甚至 应用\src\main\assets\照片\
一旦我必须从包含 700 个文件的文件夹中加载 1 个图像,我不想使用 assets\drawable。
【问题讨论】:
【参考方案1】:首先,资源和资产不是 android 设备上的文件。您不使用 decodeFile()
或任何类型的文件 I/O 来访问它们。
其次,您不能在项目树中随机创建新目录(例如,app\src\main\Fotos
、app\src\main\res\Fotos\
)并期望它们会被打包到您的 APK 中,更不用说在设备上可用了。
您的主要选择是:
将它们作为可绘制资源(例如app/src/main/res/drawable-nodpi/
),然后使用R
常量将它们放入您的ImageView
(例如R.drawable.foo
)
将它们作为资产(app/src/main/assets/Fotos/
),然后使用AssetManager
在资产上获取InputStream
,然后使用BitmapFactory
和decodeStream()
加载图像
【讨论】:
以上是关于使用 BitmapFactory.decodeFile 找不到 Android Studio 文件异常的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)