setPage(int whichpg) {
int targetX = 0, moveDistance = 0;
if (whichpg == LEFT) {
targetX = -(getViewWidthInPix(context) - menuWidth);
mCurState = LEFT;
} else if (whichpg == RIGHT) {
targetX = getViewWidthInPix(context) - menuWidth;
mCurState = RIGHT;
} else {
mCurState = MIDDLE;
}
setBrotherVisibility(whichpg);
moveDistance = targetX - getScrollX();
mScroller.startScroll(getScrollX(), 0, moveDistance, 0,
Math.abs(moveDistance) * 2);
invalidate();
}
/**
* 返回当前显示的view
*
* @return
*/
public int getPage() {
return mCurState;
}
public void addChildView(View child) {
this.childLayout.addView(child);
}
/**
* 设置BrotherView
*
* @param left
* @param right
*/
public void setBrotherLayout(LinearLayout left, LinearLayout right) {
this.leftLayout = left;
this.rightLayout = right;
}
/**
* 根据当前状态显示或隐藏view
*
* @param state
*/
private void setBrotherVisibility(int state) {
switch (state) {
case LEFT:
rightLayout.setVisibility(View.GONE);
leftLayout.setVisibility(View.VISIBLE);
break;
case RIGHT:
rightLayout.setVisibility(View.VISIBLE);
leftLayout.setVisibility(View.GONE);
break;
case MIDDLE:
break;
default:
break;
}
}
}
好了,高仿QQ HD mini左右滑动菜单栏效果 源码地址:
具体下载目录在 /2013年资料/5月/2日/高仿QQ HD mini左右滑动菜单栏效果