2011-04-12 5 views
5

ProgressBar가있는 레이아웃이 있습니다. 실제로는 SeekBar이지만 ProgressBar에서도 같은 문제가 발생합니다. 전체 Layout에 애니메이션을 적용하기 전까지는 잘 동작합니다. 애니메이션이 진행되는 동안 ProgressBar는 예상대로 계속 작동하지만 애니메이션이 끝나면 Animation.setFillAfter (true)를 사용하여 애니메이션의 마지막 위치에서 Layout을 고정합니다. ProgressBar가 올바르게 업데이트되지 않고 작은 라인 만 업데이트됩니다. 진행 막대 막대의 하단 부분이 고정 된 상태로 유지되는 동안 바의 상단에있는 막대 그래프가 계속 업데이트됩니다 (수평 progressBar). 애니메이션 후 ProgressBar가 올바르게 업데이트되지 않습니다.

일부 코드 : ProgressBar의와 레이아웃 : 나는 전체 레이아웃에 애니메이션을 시작하는 곳

다음
Animation a = AnimationUtils.loadAnimation(this, R.anim.translate_down); 
a.setFillAfter(true); 

은 다음과 같습니다 : 나는 애니메이션을 정의하는 경우

다음
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/video_buttons" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|left"> 
<SeekBar 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/progressbar_Horizontal" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:max="100" 
/> 

View vv = p.findViewById(R.id.video_buttons); 
vv.startAnimation(anim); 
+0

코드가 충분하지 않습니다. 완전한 테스트 케이스를 게시해야합니다. –

답변

0

제 생각에는 의도하지 않게 th e "android : secondaryProgress"속성.

activity.runOnUiThread(new Runnable() // 
      { 
       public void run() // 
       { 
        int newProgressVal = Integer 
          .parseInt((String) syncProgressNumber.getText()) + 1; 
        syncProgress.incrementProgressBy(1); 
        syncProgressNumber.setText(String 
          .valueOf(newProgressVal)); 
       } 
      }); 

UI 스레드가 스레드 안전하지 않습니다, 당신은 UI를 업데이트 할 수 있습니다 : 당신이 별도의 스레드에서이 작업을 실행하는 경우이 외에는

, 다음 당신이 사용하고 만들 다른 스레드에서.

희망이 도움이됩니다.

관련 문제