问题描述
库已经支持 scale types 用于 SimpleDraweeView 控件,其方式与标准 ImageView scaleType 属性类似。然而,这些只是渲染转换,不会改变图像本身。
就我而言,我需要使用检索到的位图 directly from the pipeline,(根本没有使用 SimpleDraweeView)。而且我要求这个在获得时已经是中心裁剪的。
我知道我可以在检索后自己裁剪它并将结果缓存到库中,但这需要创建管道位图的副本。问题是该库是否已经内置了这样的功能以避免额外的分配。
解码 ResizeOptions 只会上下缩放图像,即使设置相同的宽度和高度也是如此。还有 BitmapTransformation 的选项,不幸的是,这是就地的,无法更改位图指标。
void execute(@NonNull final Context context,@NonNull final Uri uri,final int maxSize) throws Throwable
{
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setimageDecodeOptions(ImageDecodeOptions.newBuilder().setForceStaticImage(true).build())
.setResizeOptions(new ResizeOptions(maxSize,maxSize))
.build();
final DataSource<CloseableReference<CloseableImage>> dataSource = Fresco.getimagePipeline()
.fetchDecodedImage(request,context);
try (final CloseableReference<CloseableImage> result = DataSources.waitForFinalResult(dataSource))
{
if (result != null)
{
final CloseableImage image = result.get();
final Bitmap pipelineBitmap = ((CloseableBitmap)image).getUnderlyingBitmap();
// Expected to be already center-cropped at this point
// ....
}
}
finally
{
dataSource.close();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)