小背景:我正在构建一个媒体播放器应用程序,我希望我的应用程序看起来类似于下图。
如您所见,相同的图像变为背景,同时它也出现在带圆圈的图像视图中。
我的第一个方法是做两个不同的GlideApp
电话。
GlideApp.with(this)
.load(R.drawable.hunting_party)
.transforms(
new CenterCrop(),
new BlurTransformation(60),
new ColorFilterTransformation(Color.parseColor("#b3808080"))
)
.into(mMainBackground);
GlideApp.with(this)
.load(R.drawable.hunting_party)
.into(mAlbumArt);
但是,我想重新使用之前的GlideApp
调用,以便它可以像下面这样工作。
GlideApp.with(this)
.load(R.drawable.hunting_party)
.transforms(
new CenterCrop(),
new BlurTransformation(60),
new ColorFilterTransformation(Color.parseColor("#b3808080"))
)
.into(mMainBackground)
// now remove prior transformation
// and load into different view
.into(mAlbumArt);
任何建议都会有所帮助!
*基于Vishal的代码*
为了使RequestBuilder
接受transforms
,你应该使用RequestOptions
代替。
RequestBuilder<Drawable> glideRequestBuilder = GlideApp.with(this).load(R.drawable.hunting_party);
RequestOptions backgroundTransformOptions = new RequestOptions()
.transforms(
new CenterCrop(),
new BlurTransformation(60),
new ColorFilterTransformation(Color.parseColor("#b3808080"))
);
glideRequestBuilder
.into(mAlbumArt);
glideRequestBuilder
.apply(backgroundTransformOptions)
.into(mMainBackground);
import com.bumptech.glide.RequestBuilder
RequestBuilder<Drawable> glideRequestBuilder = GlideApp.with(this).load(R.drawable.hunting_party);
glideRequestBuilder.transforms(
new CenterCrop(),
new BlurTransformation(60),
new ColorFilterTransformation(Color.parseColor("#b3808080"))
)
.into(mMainBackground);
glideRequestBuilder.into(mAlbumArt);