Как обрабатывать один источник изображения для двух разных преобразований - PullRequest
0 голосов
/ 05 сентября 2018

Маленький фон: Я создаю приложение для медиаплеера и хочу, чтобы мое приложение выглядело примерно так, как показано на рисунке ниже.

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

Любое предложение будет полезно!

* На основе кода Вишала *

Чтобы 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 голосов
/ 05 сентября 2018
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); 
...