2012-01-18 3 views
0

많은 이미지가있는 ViewFlipper가 있습니다. 다음과 같이 ViewFlipper에 이미지를 추가합니다.현재 ViewFlipper의 이름

bitmap = BitmapFactory.decodeFile(files[i].getPath()); 
img = new ImageView(this); 
img.setImageBitmap(bitmap); 
img.setScaleType(ImageView.ScaleType.FIT_XY); 
vf.addView(img, new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.FILL_PARENT)); 
img = null; 

을 for 루프에 추가합니다.

animFlipInNext.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 
       System.out.println("AnimStart- LeftIn" + " Will be displayed " 
         + vf.getDisplayedChild()); 
       final File[] imageName = images.listFiles(); //images that I want for viewflipper to stop. 
       for (int i = 0; i < images.length(); i++) { 
        bitmap = BitmapFactory.decodeFile(imageName[i].getPath()); 
        Drawable background = new BitmapDrawable(bitmap); 
        if (vf.getCurrentView().getBackground().equals(background)) { 
         System.out.println("begin " 
           + files[i].getName()); 
        } else 
         System.out.println("NUNUNU"); 

       } 
      } 

을하지만 아무 반응이 없습니다 : 애니메이션이 시작되면 나는 내가 이것을 시도 ViewFlipper.을 stopflipping해야하기 때문에 일부 이미지에 표시됩니다 어떤 이미지 (이미지 이름) 알고 싶어요. 나는 어떤 메시지도받지 않는다. 내 실수는 어디 갔지? 아니면 어떻게해야합니까?

답변

0

문제의 몇 내가 골라했습니다

뷰 플리퍼 것입니다 설정된 간격으로 당신의보기의를 통해 자동으로주기. 나는 당신의 청취자가 모든 "뒤집기"에 불을지를 것인지 또는 처음으로 startFlipping()으로 전화 할 때만 불이 올지 확실치 않습니다. 모든 뒤집기가 호출되는지 또는 뒤집기가 시작될 때만 첫 번째 줄로 Log.v()을 입력하고 출력을 검사하여 테스트 할 수 있습니다. 당신에게 일인가하는

는 또한 여기에 논리적 오류가 있습니다

vf.getCurrentView().getBackground().equals(background) 

를 코드 줄에 배경 오브젝트가 정확히 같은 객체 인 경우, 사용자가 요구하는 동일한 소스가 있는지 확인하지 . 이전에 새로운 background 객체를 방금 작성했기 때문에 알 수 없습니다.

그러나 원하는대로 달성 할 수 있어야합니다. 모든 Views에는 원하는 모든 이유로 사용할 수있는 "원 크기 적합"속성이 있습니다. 이 코드를 고려 :

bitmap = BitmapFactory.decodeFile(files[i].getPath()); 
img = new ImageView(this); 
img.setImageBitmap(bitmap); 
*img.setTag(files[i].getPath())* 
img.setScaleType(ImageView.ScaleType.FIT_XY); 
vf.addView(img, new LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.FILL_PARENT)); 
img = null; 

을 이제 호출 할 수

if (vf.getCurrentView().getTag().toString().equalsIgnoreCase(mPathImLookingFor)) { 
    // Do something 
} 
관련 문제