有时候标题栏会浮在内容之上,而内容会有颜色的变化,这时候就要求标题栏能够变化透明度,标题栏中的图片能够变化颜色。看下效果,如下图:
描述
当界面往下划的时候,我们需要做的是
将标题栏是从全透明往全不透明转变
将标题栏中的图片从白色往主题色转变
当界面往上时,就反过来转变界面。
编写步骤
我们的demo的布局是标题栏在recyclerView的上方,布局如下
我们只需要3个步骤:
1.监听recyclerView的滑动
2.滑动时计算出位移的百分比
3.根据百分比来操作标题栏背景和图片
准备工作
在Activity的onCreate里初始化下视图,获取view对象,获取标题栏的背景图,图片的drawble对象等
![](https://i-blog.csdnimg.cn/blog_migrate/54064e276134a7817492c24e5f8ce273.gif)
描述
当界面往下划的时候,我们需要做的是
将标题栏是从全透明往全不透明转变
将标题栏中的图片从白色往主题色转变
当界面往上时,就反过来转变界面。
编写步骤
我们的demo的布局是标题栏在recyclerView的上方,布局如下
我们只需要3个步骤:
1.监听recyclerView的滑动
2.滑动时计算出位移的百分比
3.根据百分比来操作标题栏背景和图片
准备工作
在Activity的onCreate里初始化下视图,获取view对象,获取标题栏的背景图,图片的drawble对象等
public class MainActivity extends AppCompatActivity {
Drawable headBg ;
Drawable iv1Drawable ;
Drawable iv2Drawable ;
RecyclerView rv;
RelativeLayout rlHead;
private int scrollY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 初始化工作
*/
rv = (RecyclerView) findViewById(R.id.rv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setAdapter(new SimpleAdapter());
rlHead = (RelativeLayout) findViewById(R.id.rl_head);
headBg = rlHead.getBackground().mutate();//获取head的背景drawable
iv1Drawable = ((Ima