我使用Glide 4.7.1尝试调整大小并保存一些照片。
for (String path : this.paths) {
Glide.with(this.context).asBitmap().load(path).apply(RequestOptions.fitCenterTransform()).into(new SimpleTarget<Bitmap>(1080, 1920) {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
try {
resource.compress(Bitmap.CompressFormat.JPEG, 85, new FileOutputStream(MasterFacade.getAppDir() + "temp/" + resource.hashCode() + ".jpg"));
listener.onUpdate(progressMessage, processed.get());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
});
}
我只想调整大小(保持宽高比)到1080x1920(或最近),然后将新位图保存到文件中。
我确定我已经允许写作
我确定path
图片存在
我确定MasterFacade.getAppDir() + "temp/" + resource.hashCode() + ".jpg"
是一个有效的目录,而且我已经在上面写了一段时间
但是这个代码永远不会到达!
我尝试调试,onResourceReady
永远不会被调用...
我做错了什么?
答案 0 :(得分:2)
在Glide 4.x
中使用此图像调整图像大小Glide.with(getContext())
.load(imagePath)
.apply(new RequestOptions().override(600, 200))
.fitCenter()
.into(setImage);
答案 1 :(得分:0)
您可以使用override
功能滑动来调整图像大小。
您可以从https://stackoverflow.com/a/50617561/6238866
获得更多赞:
public static void loadCircularImageGlide(String imagePath, ImageView view) {
Glide.with(view.getContext())
.load(imagePath)
.asBitmap()
.override(1080,1920) // resizes the image to these dimensions (in pixel). resize does not respect aspect ratio
.error(R.drawable.create_timeline_placeholder)
.fitCenter() // scaling options
.transform(new CircularTransformation(view.getContext())) // Even you can Give image tranformation too
.into(view);
}
答案 2 :(得分:0)
问题似乎是由路径引起的,如果你想从外部存储器加载图像,在 Glide 中,你必须使用正确的路径
确保路径有效
name_get()
答案 3 :(得分:0)
您可以使用glide.try来调整图像大小......
Glide.with(getContext())
.load(imagePath)
.apply(new RequestOptions().override(600, 200))
.fitCenter()
.into(setImage);
答案 4 :(得分:0)
我相信没有一个答案能真正解读我的问题:
我尝试调试,onResourceReady永远不会被调用...
所以我检查了滑动维基,它说:
第二个关键部分是Glide构建器行.with(context)。该 这里的问题实际上是Glide的一个特性:当你传递一个上下文时, 例如当前的app活动,Glide会自动停止 请求活动停止时的请求
我在调用finish()
之后就调用了上面的代码,因此代码在Glide内部停止而没有抛出任何异常,并且onResourceReady
从未被调用过。
答案 5 :(得分:0)
像@Gautam Kumar一样获得图像,但是您还必须通过添加android:adjustViewBounds =“ true”来更改XML中的imageView。
Glide.with(getContext())
.load(imagePath)
.apply(new RequestOptions().override(600, 200))
.into(setImage);
然后输入您的XML
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:id="@+id/image_id"
android:src="@drawable/ic_image" />