2012-10-25 2 views
0

애니메이션이 사라져서 사라집니다. 누군가 내 문제를 해결할 수 있습니까? 나는 아직도 그것을 활용할 수 있습니다!Android 애니메이션 버그가 사라지고 사라집니다.

 private RelativeLayout.LayoutParams params; 

    public void startTapped(View view) { 
     sideBar(44, 0); 
    } 

    public void sideBar(final int translateX, final int translateY) 
    { 
     TranslateAnimation translate = new TranslateAnimation(0, translateX, 0, translateY); 
     translate.setDuration(1500); 
     translate.setAnimationListener(new AnimationListener() { 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      // TODO Auto-generated method stub 
      buttonContainer.removeView(sidebar); 
      sidebar = new ImageView(Game.this); 
      sidebar.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 

       } 
      }); 
      if(out == 0) 
      { 
      params.leftMargin = translateX + params.leftMargin; 
      params.topMargin = translateY + params.topMargin; 
      params.rightMargin = 0 + params.rightMargin; 
      params.bottomMargin = 0 + params.bottomMargin; 
      sidebar.setLayoutParams(params); 
      buttonContainer.addView(sidebar); 
      out=1; 
      } 
      else if(out == 1) 
      { 
       params.leftMargin = translateX - params.leftMargin; 
       params.topMargin = translateY - params.topMargin; 
       params.rightMargin = 0 - params.rightMargin; 
       params.bottomMargin = 0 - params.bottomMargin; 
       sidebar.setLayoutParams(params); 
       buttonContainer.addView(sidebar); 
       out=0; 
      } 
     } 

@Override 
public void onClick(View v) { 


    switch(v.getId()) 
    { 


     case R.id.sidebar: 
      startTapped(sidebar); 
     break; 
    }  
} 

그것이 가정처럼 슬라이드 사라하지만 : 상단에

내가이

private RelativeLayout buttonContainer; 
    buttonContainer = (RelativeLayout) sidebar.getParent(); 

여기 함수 부분의 내 코드의 선언 , 그러나 그것은 단지 보이지 않습니다.

답변

0

코드의 톤이 여기에 누락되어 있습니다 ... 그리고 목표를 잘 설명하지 못하는 것입니다. 그러나 당신이 복잡한 것을 끝내는 것처럼 보입니다. 이 시도 :

public void startTapped(View view) { 
    if (view.getVisibility() == View.GONE) { 
     view.startAnimation(sideBar(context.getResources() 
       .getDimensionPixelOffset(R.dimen.side_bar_width)*-1, 0)); 
     view.setVisibility(View.VISIBLE); 
    } else { 
     view.setVisibility(View.GONE); 
     view.startAnimation(sideBar(0, context.getResources() 
       .getDimensionPixelOffset(R.dimen.side_bar_width)*-1)); 
    } 
} 

public Animation sideBar(int start, int finish) { 
    TranslateAnimation translate = new TranslateAnimation(start, finish, 0, 0); 
    translate.setDuration(1500); 
    return translate; 
} 

values 폴더에 dimens.xml 파일을 추가하는 것은 res입니다 :

또한 메뉴가 때 응용 프로그램을 열도록 android:visibility="gone"에 사이드 바보기를 설정하는 것이 좋습니다
<resources> 
    <dimen name="side_bar_width">44dp</dimen> 
</resources> 

시작됩니다.

+0

내가 이렇게하면 오른쪽으로 미끄러지 며 즉시 다시 어디로 가야하고 다시 클릭하면 다시 해당 위치로 이동하고 왼쪽으로 돌아갑니다. – Dalton

+0

또한 왜 그런지 내가 그것을 가지고 있었던 이유는 그것이 오른쪽으로 미끄러질 때 나는 그것을 클릭 할 수 없었다. 원래 위치를 클릭해야했습니다. 코드 감각을 업데이트 해 주시겠습니까? 더 좋은 meaing을 주셨습니다 – Dalton

+0

위 코드에서 제 코드를 살펴 보겠습니다. 오른쪽으로 미끄러지면 미끄러 져 사라집니다. 그러나 사라진 상자를 계속 클릭 할 수 있습니다. – Dalton

관련 문제