如何处理一个图像源进行两种不同的转换

时间:2018-09-05 03:43:22

标签: android android-glide

小背景: 我正在构建一个媒体播放器应用程序,我希望我的应用程序看起来类似于下图。

app

如您所见,同一张图片变成背景,同时也出现在圆圈图像视图中。

我的第一种方法是进行两个不同的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);

1 个答案:

答案 0 :(得分:4)

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);