主题背景以封面高斯模糊显示
//主题背景以封面高斯模糊显示 Glide.with(context) .load(url) .asBitmap() .placeholder(R.drawable.head) .error(R.drawable.head) .fitCenter() .into(new SimpleTarget() { @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); } }