Android 在加载毕加索中的实际图像之前模糊缩略图图像
我使用毕加索显示URL中的图像,我在加载实际图像之前先显示缩略图,我想模糊缩略图,我如何在毕加索中实现 这是我的源代码Android 在加载毕加索中的实际图像之前模糊缩略图图像,android,imageview,picasso,Android,Imageview,Picasso,我使用毕加索显示URL中的图像,我在加载实际图像之前先显示缩略图,我想模糊缩略图,我如何在毕加索中实现 这是我的源代码 pb.setVisibility(View.GONE); Picasso.with(getApplicationContext()) .load(thumbUrl) // thumbnail url goes here //.placeholder(R.drawable.progress_anima
pb.setVisibility(View.GONE);
Picasso.with(getApplicationContext())
.load(thumbUrl) // thumbnail url goes here
//.placeholder(R.drawable.progress_animation)
.resize(width, width)
.transform(new BlurTransformation(getApplicationContext(), 25, 1))
.into(imageview, new Callback()
{
@Override
public void onSuccess()
{
pb.setVisibility(View.GONE);
Log.e(TAG,"OnSuccess");
Picasso.with(getApplicationContext())
.load(url) // image url goes here
.resize(width, width)
.placeholder(imageview.getDrawable())
.into(imageview);
iv_reDownload.setVisibility(View.GONE);
}
@Override
public void onError()
{
pb.setVisibility(View.GONE);
Log.e(TAG,"OnError");
Picasso.with(getApplicationContext())
.load(url) // image url goes here
.resize(width, width)
.placeholder(imageview.getDrawable())
.into(imageview);
iv_reDownload.setVisibility(View.VISIBLE);
}
});
不确定这是否有效,但我以前见过您可以使用:
.add(new ImageTransform(IMAGE_URL, new BlurTransformation(this)));
据我所知,毕加索目前不支持这种“功能”。Glide库的用法非常相似,它确实有一个功能,可以轻松使用“快速预览”,即加载速度比全尺寸图像快的低分辨率缩略图 函数是
缩略图(浮点)
并接受比例因子作为参数,例如0.1f
是原始图像大小的十分之一
Glide的Case用法可能是这样的
Glide.with(mFragment)
.load(wFile.getUriForThumb())
.override(length, length)
.thumbnail(.05f)
.placeholder(R.drawable.placeholder_image_128px)
.into(holder.mImageThumb);
其中方法override
与毕加索中的resize(int,int)
非常相似
要在两个库之间进行完整的比较,您可以查看这本漂亮的指南:最后,我在名为“毕加索变换”的帮助下解决了我的问题,我在我的项目中添加了以下依赖项
compile 'jp.wasabeef:picasso-transformations:2.2.1'
它不仅支持毕加索,而且还支持滑翔或壁画
我在毕加索内部调用了BlurTransformation
类
这是一个完整的例子
pb.setVisibility(View.GONE);
Picasso.with(getApplicationContext())
.load(thumbUrl) // thumbnail url goes here
//.placeholder(R.drawable.progress_animation)
.resize(width, width)
.transform(new BlurTransformation(getApplicationContext(), 25, 1))
.into(imageview, new Callback()
{
@Override
public void onSuccess()
{
pb.setVisibility(View.GONE);
Log.e(TAG,"OnSuccess");
Picasso.with(getApplicationContext())
.load(url) // image url goes here
.resize(width, width)
.placeholder(imageview.getDrawable())
.into(imageview);
iv_reDownload.setVisibility(View.GONE);
}
@Override
public void onError()
{
pb.setVisibility(View.GONE);
Log.e(TAG,"OnError");
Picasso.with(getApplicationContext())
.load(url) // image url goes here
.resize(width, width)
.placeholder(imageview.getDrawable())
.into(imageview);
iv_reDownload.setVisibility(View.VISIBLE);
}
});
毕加索的模糊变换,参考:
我已经测试了Glide和Picasso的快速加载,如果你在Picasso中调整你的图像大小,它将提高你的加载速度,下面是代码
Glide.with(context)
.load(sArr.get(position).getThumbnail())
.thumbnail(0.01f)
.override(100,100)
.centerCrop()
.placeholder(R.drawable.default_picture)
.into(holder.imgItem);
皮卡索代码
Picasso.with(context)
.load(sArr.get(position).getThumbnail())
.resize(100,100)
.placeholder(R.drawable.default_picture)
.into(holder.imgItem);
毕加索赢了强>
毕加索没有这个选项,但Glide有。@Gotiasits你能分享这个例子吗?毕加索有这个
add
函数吗?我发现非常糟糕的答案,减少1
Picasso.with(context)
.load(sArr.get(position).getThumbnail())
.resize(100,100)
.placeholder(R.drawable.default_picture)
.into(holder.imgItem);