在使用Android系统的裁剪,进行大图裁剪时,因为Intent不能携带太大的图,返回的是一个160x160的缩略图。需要使用Uri才能获取到裁剪后的大图。
在定义Uri路径时犯了错误,最初使用的路径是:
String path = activiy.getCacheDir().getAbsolutePath() + "/avatar"; IMAGE_FILE_LOCATION =getCacheFile(new File(path),"avatar"+select_type+".jpg"); imageUri = Uri.fromFile(IMAGE_FILE_LOCATION);这样在裁剪完图片返回数据时,会出现异常:java.io.FileNotFoundException:Permission denied
原因是:
相机活动在不同的应用程序中运行,无法访问应用程序的内部缓存目录。必须使用外部目录或让相机应用程序选择目录本身才能将其复制到缓存目录。
解决办法是,不用getCacheDir() 用 getExternalCacheDir()