现在好多应用都采用了toolbar随着listview滑动透明度渐变的做法。那么,我们怎么实现toolBar滑动渐变呢?其实,toolbar就与一般的控件一样。在这里,就列举一种很简单的方法。
public void toolBarAlpha() {
int startOffset = 0;
int endOffset = getActivity().getResources().getDimensionPixelOffset(R.dimen.head);
int[] location = new int[2];
view.getLocationOnScreen(location);
int y = location[1] - getNotificationHigh();
if (Math.abs(y) <= startOffset) {
llTool.getBackground().mutate().setAlpha(0);
} else if (Math.abs(y) > startOffset && Math.abs(y) < endOffset) {
float precent = (float) (Math.abs(y) - startOffset) / endOffset;
int alpha = Math.round(precent * 255);
llTool.getBackground().mutate().setAlpha(alpha);
} else if (Math.abs(y) >= endOffset) {
llTool.getBackground().mutate().setAlpha(255);
}
}
首先在oncreat方法中设置llTool.getBackground().mutate().setAlpha(0)这样刚进入的时候为全透明状态;
在这个方法中,
getNotificationHigh()是自定义的获取状态栏的高度。
getNotificationHigh()是自定义的获取状态栏的高度。
R.dimen.head定义一个高度。使得toolbar在startOffset与endoffset这个高度区间内
根据view所在坐标的变化而变化。
R.dimen.head定义一个高度。使得toolbar在startOffset与endoffset这个高度区间内