您的位置:首页 > 其它

fresco 加载本地路径图片,并修改图片尺寸

2017-11-28 10:14 573 查看
mark

int width =100;//目标宽度
Postprocessor postprocessor = new Postprocessor() {
@Override    public CloseableReference<Bitmap> process(Bitmap sourceBitmap, PlatformBitmapFactory bitmapFactory) {
int sw = sourceBitmap.getWidth();
int sh = sourceBitmap.getHeight();
float scale = (float) width / (float) sw;
int mscale = sw / width;
float heigh = scale * (float) sh;
int nscale = sh / (int) heigh;
CloseableReference<Bitmap> bitmapRef = bitmapFactory.createBitmap(                width,                (int) heigh);
try {
Bitmap destBitmap = bitmapRef.get();
for (int x = 0, m = 0; x < destBitmap.getWidth() && m < sw; x++, m += mscale) {
for (int y = 0, n = 0; y < destBitmap.getHeight() && n < sh; y++, n += nscale) {
destBitmap.setPixel(x, y, sourceBitmap.getPixel(m, n));
}
}
return CloseableReference.cloneOrNull(bitmapRef);
} finally {
CloseableReference.closeSafely(bitmapRef);
}
}
@Override
public String getName() {        return null;    }
@Override
public CacheKey getPostprocessorCacheKey() {        return null;    }};
ImageRequest request =
//此处是加载本地图片路径的图片
ImageRequestBuilder.newBuilderWithSource(Uri.parse("file://" + MyBimp.tempSelectBitmap.get(position).path))

.setPostprocessor(postprocessor)
.build();

PipelineDraweeController controller = (PipelineDraweeController)
Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(holder.mainView.getController())
// other setters as you need
.build();
mainView.setController(controller);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: