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

问题描述 投票:0回答:1

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

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);
android android-glide
1个回答
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); 
© www.soinside.com 2019 - 2024. All rights reserved.