实现思路:
自定义SlidingMenu,写一个接口,将其中的
onScrollChanged(int x, int y, int oldX, int oldY)方法暴露出来,通过其中的y来判断,设置相应的透明度。
public class MyScrollView extends ScrollView{
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public interface OnScrollChangedListener{
public void onScrollChanged(int x, int y, int oldxX, int oldY);
}
private OnScrollChangedListener onScrollChangedListener;
/**
*
* @param onScrollChangedListener
*/
public void setOnScrollListener(OnScrollChangedListener onScrollChangedListener){
this.onScrollChangedListener=onScrollChangedListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldX, int oldY){
super.onScrollChanged(x, y, oldX, oldY);
if(onScrollChangedListener!=null){
onScrollChangedListener.onScrollChanged(x, y, oldX, oldY);
}
}
}
在Activity中,设置监听,根据y值改变透明度。
mMyScrollView.setOnScrollListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged(int x, int y, int oldxX, int oldY) {
if (y < 300) {
view.setAlpha((float) y / 300.0f);
} else {
view.setAlpha(1.0f);
}
}
});