如何处理一个图像源进行两种不同的变换
How to handle one image source for two different transformation
小背景:
我正在构建一个媒体播放器应用程序,我希望我的应用程序看起来类似于下图。
如您所见,同一张图片成为背景,同时它也出现在带圆圈的图片视图中。
我的第一个方法是进行两次不同的 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);
小背景: 我正在构建一个媒体播放器应用程序,我希望我的应用程序看起来类似于下图。
如您所见,同一张图片成为背景,同时它也出现在带圆圈的图片视图中。
我的第一个方法是进行两次不同的 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);