-
主题背景以封面高斯模糊显示
//主题背景以封面高斯模糊显示
Glide.with(context)
.load(url)
.asBitmap()
.placeholder(R.drawable.head)
.error(R.drawable.head)
.fitCenter()
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
//处理得到模糊效果的图
Bitmap blurBitmap = ImageFilter.fastblur(resource, 25);
BitmapDrawable bd= new BitmapDrawable(blurBitmap);
bgImg.setImageBitmap(blurBitmap); // 整体背景
mToolbar.setBackground(bd); // 标题背景
mBgImgOpenAll.setImageBitmap(blurBitmap); // 展开详情背景
}
});
2.设置主题背景以及新增透明度动画(浅入深)
/**
* 设置主题背景以及新增透明度动画(浅入深)
* @param drawableId
*/
protected void setBgImgByDrawable(@DrawableRes int drawableId) {
AlphaAnimation alphaAnimation;
//一开始先设置透明,这样图片不会显示,等点击按钮时再显示
bgImg.setAlpha(0.4f);
alphaAnimation=new AlphaAnimation(0.5f, 0.9f);
alphaAnimation.setDuration(1500); //深浅动画持续时间
alphaAnimation.setFillAfter(true); //动画结束时保持结束的画面
bgImg.setBackgroundResource(drawableId); // 整体背景
bgImg.setPadding(0, 0, 0, 0);
bgImg.setAlpha(0.9f);
bgImg.setAnimation(alphaAnimation);
alphaAnimation.start(); // 启动动画
}
3.控制appbar的滑动
/**
* 控制appbar的滑动
*
* @param isScroll true 允许滑动 false 禁止滑动
*/
private void banAppBarScroll(boolean isScroll) {
View mAppBarChildAt = appbar.getChildAt(0);
AppBarLayout.LayoutParams mAppBarParams = (AppBarLayout.LayoutParams) mAppBarChildAt.getLayoutParams();
isScrollFlag = isScroll;
if (isScroll) {
mAppBarParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
mAppBarChildAt.setLayoutParams(mAppBarParams);
} else {
mAppBarParams.setScrollFlags(0);
}
}