我需要下载 GIF 并将其保存到外部存储,以便通过彩信发送。消息的大小限制为 300kb,并且大多数 GIF 太大,因此我需要调整它们的大小。
我在项目的其余部分中使用 Glide,Glide 有一个漂亮的功能,理论上应该下载调整大小的图像。但事实并非如此。
简而言之,这是我在后台线程中调用的代码:
byte[] bytes = Glide.with(context)
.load(url)
.asGif()
.toBytes()
.into(250, 250)
.get();
file = new File(fileName);
FileOutputStream fileWriter = new FileOutputStream(file);
fileWriter.write(bytes);
fileWriter.flush();
fileWriter.close();
下载的文件仍保持其原始大小,高于 MMS 300kb 的限制,而它们的大小应为 250x250 像素。
最佳答案
在 Glide Github 上问了同样的问题并在那里得到了答案。显然,Glide 只会调整大于 500 x 500 的图像大小,除非使用 fitCenter() (或任何其他)转换。
因此,要调整 .gif 文件的大小,请使用以下代码:
byte[] bytes = Glide.with(context)
.load(url)
.asGif()
.toBytes()
.transform(new GifDrawableTransformation(new CenterCrop(context), Glide.get(context).getBitmapPool()))
.into(250, 250)
.get();
关于android - Glide - 下载 GIF 并调整其大小到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129543/