所以,这是我的问题?我有它滑出的地方,然后它将保持在那个位置,然后你应该能够再次点击它,它将滑回原来的位置。
但相反,我必须点击FIRST所在的位置。即使它被淘汰了。我希望在动画之后制作它我可以点击任何地方,它滑出来。
这是我的代码
public void sideBar()
{
ImageView sidebar = (ImageView)findViewById(R.id.sidebar);
if(out == 0)
{
mSlideInRight = AnimationUtils.loadAnimation(this, R.anim.slide_in_right);
mSlideInRight.setFillAfter(true);
sidebar.startAnimation(mSlideInRight);
out= 1;
}
else if(out == 1)
{
mSlideInLeft = AnimationUtils.loadAnimation(this, R.anim.slide_in_left);
sidebar.startAnimation(mSlideInLeft);
out=0;
}
}
这是你点击它时的代码
public void onClick(View v) {
ImageView sidebar = (ImageView)findViewById(R.id.sidebar);
ImageView popup = (ImageView)findViewById(R.id.popup);
ImageView popup2 = (ImageView)findViewById(R.id.popup2);
switch(v.getId())
{
case R.id.sidebar:
sideBar();
break;
}
}
答案 0 :(得分:0)
动画仅影响侧边栏ImageView
的绘制方式,而不影响其实际位置。动画完成后,您应该将侧边栏的布局参数更新到所需位置。您可以在AnimationListener
中执行此操作,如果您希望在动画运行时或完成后更新位置,或者在调用startAnimation
之后立即更新,如果您希望更改位置动画开始。
mSlideInRight.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation anim) {};
@Override
public void onAnimationRepeat(Animation anim) {};
@Override
public void onAnimationEnd(Animation anim) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(...);
// Set properties of layoutParams here
sidebar.setLayoutParams(layoutParams);
};
});
将RelativeLayout
替换为您的ImageView所属的任何布局。