Android 通用图像加载器:使用扩展名为FileNameGenerator时出现IllegalArgumentException
我想在使用通用图像加载器保存的图像中添加.jpg扩展名,但我们似乎不能在文件名中使用“.”Android 通用图像加载器:使用扩展名为FileNameGenerator时出现IllegalArgumentException,android,universal-image-loader,image-loading,Android,Universal Image Loader,Image Loading,我想在使用通用图像加载器保存的图像中添加.jpg扩展名,但我们似乎不能在文件名中使用“.” public class UrlFileNameGenerator implements FileNameGenerator { @Override public String generate(String url) { return new Md5FileNameGenerator().Generate(url) + ".jpg"; } } 如何通过通用图像加载器使用.jpg扩展
public class UrlFileNameGenerator implements FileNameGenerator {
@Override
public String generate(String url) {
return new Md5FileNameGenerator().Generate(url) + ".jpg";
}
}
如何通过通用图像加载器使用.jpg扩展名保存图像。如果您有任何帮助,我们将不胜感激。使用Universal Image Loader已经很久了
因此,我认为您不需要使用文件名指定图像类型,因为它的工作方式不同,要将图像保存为
jpg
格式,您必须调用setCompressFormat(Bitmap.CompressFormat.JPEG)
以LruDiskCache
。并从文件url中删除文件类型。默认情况下,每个图像将仅另存为PNG
类型,如从LruDiskCache
classdefault\u COMPRESS\u FORMAT=Bitmap.CompressFormat.PNG
感谢您的回复,但这可以帮助我用适当的扩展名保存文件,这样我就可以通过默认的android图像浏览器或gallery应用程序打开文件。我需要我的图像以适当的扩展名存储。我不想创建一个应用程序内的imageview来处理图像,而是希望android的imageviewer能帮我做到这一点。这就是为什么我需要用适当的扩展名保存图像。非常感谢。@Ankur Teotia-刚更改了文件名的扩展名并不意味着您的文件只保存在该格式上,扩展名只作为文件的名称uri。在您的情况下,如果您不在文件名中指定扩展名并将图像另存为JPEG
格式,那么您的所有文件都具有.jpg
扩展名。通用图像加载器将处理它。
FATAL EXCEPTION: uil-pool-d-3-thread-1
Process: com.example.internetwallpaper, PID: 24567
java.lang.IllegalArgumentException: keys must match regex [a-z0-9_-] {1,64}: "1828294.jpg"
at com.nostra13.universalimageloader.cache.disc.impl.ext.DiskLruCache.valida teKey(DiskLruCache.java:697)
at com.nostra13.universalimageloader.cache.disc.impl.ext.DiskLruCache.get(Di skLruCache.java:414)
at com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiscCache.get(Lr uDiscCache.java:133)
at com.nostra13.universalimageloader.core.ImageLoaderEngine$1.run(ImageLoade rEngine.java:72)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav a:587)
at java.lang.Thread.run(Thread.java:841)