5 , ... 1 , .., , , layout_right , ... layout_right menu_layout... ... , ,
:
private void slide(final View v) {
if (v.getLeft() != 0) {
Animation toLeft = new TranslateAnimation(v.getRight() - 72, 0, 0, 0);
toLeft.setDuration(animDuration);
toLeft.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
v.clearAnimation();
RelativeLayout.LayoutParams params = (LayoutParams) v
.getLayoutParams();
params.leftMargin = 0;
params.rightMargin = 0;
v.setLayoutParams(params);
}
});
v.startAnimation(toLeft);
}
else {
Animation toRigh = new TranslateAnimation(0, -v.getWidth() - 72, 0, 0);
toRigh.setDuration(animDuration);
toRigh.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
v.clearAnimation();
RelativeLayout.LayoutParams params = (LayoutParams) v
.getLayoutParams();
params.leftMargin = (int) -(v.getWidth() - v.getWidth() * .15f);
params.rightMargin = (int) (v.getWidth() * .85f);
v.setLayoutParams(params);
}
});
v.startAnimation(toRigh);
}
}
private void slideBack(final View v) {
if (v.getLeft() != 0) {
Animation toLeft = new TranslateAnimation(-v.getLeft(), 0, 0, 0);
toLeft.setDuration(animDuration + 100);
toLeft.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
v.clearAnimation();
RelativeLayout.LayoutParams params = (LayoutParams) v
.getLayoutParams();
params.leftMargin = 0;
params.rightMargin = 0;
v.setLayoutParams(params);
}
});
v.startAnimation(toLeft);
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
xPos = (int) event.getX();
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
RelativeLayout.LayoutParams params = (LayoutParams) v.getLayoutParams();
if (params.rightMargin + 1 > 0) {
params.leftMargin = (int) (event.getRawX() - xPos);
params.rightMargin = (int) (-event.getRawX() + xPos);
v.setLayoutParams(params);
}
}
if (event.getAction() == MotionEvent.ACTION_UP) {
RelativeLayout.LayoutParams params = (LayoutParams) v.getLayoutParams();
if (params.rightMargin < v.getWidth() / 2) {
params.leftMargin = 0;
params.rightMargin = 0;
}
else {
params.leftMargin = (int) -(v.getWidth() - v.getWidth() * .15f);
params.rightMargin = (int) (v.getWidth() * .85f);
}
v.setLayoutParams(params);
}
return true;
}
}