2014-03-06 3 views
4

애니메이션 이미지보기가 오른쪽에서 가운데로 움직이는 응용 프로그램을 개발 중입니다. 이미지를 클릭하면 OnClick()이 호출됩니다. 그러나 이미지 이동 경로 (이미지 뷰 근처)에서 화면을 클릭하면 OnClick()이 실행됩니다. 이미지 뷰에만 클릭 리스너를 설정하는 방법을 알려주십시오. 내 코드는 다음과 같습니다 애니메이션이 이미 완료되면애니메이션 이미지 뷰에 onclick 리스너를 설정하는 방법

ll = new LinearLayout(this); 
      ll.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      ll.setOrientation(LinearLayout.VERTICAL); 

      ll.setGravity(Gravity.CENTER); 
      imageView=new ImageView(getApplicationContext()); 
      imageView.setImageResource(R.drawable.moveimage1); 
    int width=getWindowManager().getDefaultDisplay().getWidth()/2; 
    System.out.println("width==="+width); 
      moveLefttoRight = new TranslateAnimation(width, 0, 0, 0); 
      moveLefttoRight.setDuration(3000); 
      moveLefttoRight.setRepeatCount(TranslateAnimation.INFINITE); // animation repeat count 
      moveLefttoRight.setRepeatMode(2); 

      imageView.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_LONG).show(); 
        System.out.println("Clicked"); 
       } 
      }); 

imageView.startAnimation(moveLefttoRight); 
ll.addView(imageView); 

     setContentView(ll); 
+0

이미지보기가 애니메이션으로 재생되는 동안 또는 애니메이션이 완료된 후에 onClick()이 실행되는 것을 의미합니까? – San

+0

L1 linearLayout에 해당 이미지 뷰가 있습니까? – Amrut

+0

클릭하면 onClick()을 실행하고 싶습니다. –

답변

0

당신은 온 클릭 리스너를 연결합니다. 보다 확실한 해결책을 얻으려면 애니메이션 작업을 수행해야하는 모든 계산을 처리하는 작업자 스레드를 만들고 기본 스레드의 실제 그림 만 업데이트하십시오. 예 : 움직임을 방해하지 않으면 서 onclick 수신기를 부착 할 수 있습니다.

관련 문제