如何在 android 中使用 fresco 设置渐进式 jpeg
How to set up progressive jpegs using fresco in android
我刚刚开始使用 fresco,并且已按照其文档中的步骤进行操作。我已经能够将 URI 加载到我的列表视图适配器中的 SimpleDraweeView 中,现在我正在尝试实现渐进式 jpeg(图像在加载时提高质量)。问题是他们在站点中提供的代码没有按预期工作。 Uri 正在加载,但不是渐进式的(图像在加载时质量不会逐渐提高)。有什么我遗漏或忘记添加的吗?
这是我的构建依赖项:
compile 'com.facebook.fresco:fresco:0.13.+'
我已经在我的申请中添加了这个 class:
//For fresco
Fresco.initialize(this);
这是我的 xml
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/tag_iv_tu"
android:layout_width="@dimen/tu_tag_side"
android:layout_height="@dimen/tu_tag_height"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
fresco:placeholderImage="@drawable/abc_ic_menu_share_mtrl_alpha" />
这是我的列表视图适配器中 getView() 方法中的代码
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(fileUri)
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(holder.tag_iv_tu.getController())
.build();
holder.tag_iv_tu.setController(controller);
您必须为 ImageRequst 设置 ResizeOption,因为渐进依赖于 ResizeOptions。
试试这个:
ResizeOptions options = new ResizeOptions(width, height);
ImageRequest request = ImageRequestBuilder
.newBuilderWithSource(Uri.parse(uri))
.setProgressiveRenderingEnabled(true).setResizeOptions(options)
.build();
使用此代码:
String url ="http://...";
Uri uri = Uri.parse(url);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(image.getController())
.build();
mSimpleDraweeView.setController(controller);
我刚刚开始使用 fresco,并且已按照其文档中的步骤进行操作。我已经能够将 URI 加载到我的列表视图适配器中的 SimpleDraweeView 中,现在我正在尝试实现渐进式 jpeg(图像在加载时提高质量)。问题是他们在站点中提供的代码没有按预期工作。 Uri 正在加载,但不是渐进式的(图像在加载时质量不会逐渐提高)。有什么我遗漏或忘记添加的吗?
这是我的构建依赖项:
compile 'com.facebook.fresco:fresco:0.13.+'
我已经在我的申请中添加了这个 class:
//For fresco
Fresco.initialize(this);
这是我的 xml
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/tag_iv_tu"
android:layout_width="@dimen/tu_tag_side"
android:layout_height="@dimen/tu_tag_height"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
fresco:placeholderImage="@drawable/abc_ic_menu_share_mtrl_alpha" />
这是我的列表视图适配器中 getView() 方法中的代码
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(fileUri)
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(holder.tag_iv_tu.getController())
.build();
holder.tag_iv_tu.setController(controller);
您必须为 ImageRequst 设置 ResizeOption,因为渐进依赖于 ResizeOptions。
试试这个:
ResizeOptions options = new ResizeOptions(width, height);
ImageRequest request = ImageRequestBuilder
.newBuilderWithSource(Uri.parse(uri))
.setProgressiveRenderingEnabled(true).setResizeOptions(options)
.build();
使用此代码:
String url ="http://...";
Uri uri = Uri.parse(url);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(image.getController())
.build();
mSimpleDraweeView.setController(controller);