我试图将硬编码图像加载到Android ExifInterface中,但它似乎无法找到它。这就是我想要的:
ExifInterface mExif = new ExifInterface("images/IMG_20150411_194725.jpg");
图像位于res / images目录中。有什么我需要做的东西让Android拿起来吗?
答案 0 :(得分:1)
首先,res/
通常是指资源。它们不仅仅作为开发机器上的文件存在,而且您无法创建新的资源目录,并且Android中没有任何名为res/images/
的内容。
其次,ExifInterface
仅从文件系统加载文件,而不是资源。毕竟,开发人员想要在资源上使用ExifInterface
是完全没有意义的。资源是只读的,因此您无法使用ExifInterface
修改资源中的EXIF标头。而不是浪费用户'在只读图像文件中读取时间,CPU和电池以提取元数据,开发人员会提前做到这一点,将这些数据放在其他地方,例如字符串或整数资源。
第三,ExifInterface
需要文件系统上文件的完全限定路径。因此,即使文件系统中某个文件位于images/
目录中(例如,使用getFilesDir()
作为基础创建),您也需要提供该文件的完全限定路径。