public class UitlsToos { /** * 通过imageWidth 的宽度,自动适应高度 * * @param simpleDraweeView view * * @param imagePath Uri * * @param imageWidth width */ public static void setControllerListener(final SimpleDraweeView simpleDraweeView, String imagePath, final int imageWidth) { final ViewGroup.LayoutParams layoutParams = simpleDraweeView.getLayoutParams(); ControllerListener controllerListener = new BaseControllerListener<ImageInfo>() { @Override public void onFinalImageSet(String id, @Nullable ImageInfo imageInfo, @Nullable Animatable anim) { if (imageInfo == null) { return; } int height = imageInfo.getHeight(); int width = imageInfo.getWidth(); layoutParams.width = imageWidth; layoutParams.height = (int) ((float) (imageWidth * height) / (float) width); simpleDraweeView.setLayoutParams(layoutParams); } @Override public void onIntermediateImageSet(String id, @Nullable ImageInfo imageInfo) { Log.d("TAG", "Intermediate image received"); } @Override public void onFailure(String id, Throwable throwable) { throwable.printStackTrace(); } }; DraweeController controller = Fresco.newDraweeControllerBuilder().setControllerListener(controllerListener).setUri(Uri.parse(imagePath)).build(); simpleDraweeView.setController(controller); } }
本文介绍了一个使用Fresco库实现图片加载时自动调整视图高度的方法。该方法通过设置DraweeController并监听图片加载完成事件来计算并设置目标视图的高度,确保图片能够按指定宽度等比例展示。
1708

被折叠的 条评论
为什么被折叠?



