2014-01-16 3 views
1

나는 seekbar 대신 프로세스의 진행 상황을 다르게하고 싶습니다. 내 활동을 아래에서 위로 색상을 지정하고 싶습니다. 최상위에 도달하면 프로세스가 완료되었습니다. 나는 어떻게 이것을 달성 할 수 있는가. 색상 레이아웃 전환 위로 아래쪽에서 위로 점진적으로

난의 높이를 변경하는 커스텀 애니메이션을 생성하지 서서히

View line = new View(this); 
    line.setBackgroundColor(Color.parseColor("#22FF6666")); 
    RelativeLayout.LayoutParams rLParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,i*10); 
      rLParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1); 
      rMain.addView(line,rLParams); 
+0

뷰의 높이를 증가하려고? –

+0

ClipDrawable을 뷰/레이아웃의 배경으로 사용 – pskink

+0

핸들러를 사용하여 솔루션을 얻었습니다. – user3201189

답변

0

동시에 보이고있다 서서히 공정 진행하지만, 문제에 따른 레이아웃 도면을 생성하고 뷰의 높이를 증가시키는 시도.

public class HeightAnimation extends Animation { 

    private View view; 
    private int oldValue,newValue; 

    public HeightAnimation(View view,int oldValue,int newValue) { 
     this.view=view; 
      this.old=oldValue; 
      this.newValue=newValue; 
     setDuration(300); 
    } 

    @Override 
    protected void applyTransformation(float interpolatedTime, Transformation t) { 
     RelativeLayout.LayoutParams rLParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,(int)(oldValue+(newValue-oldValue)*interpolatedTime)); 
      view.setLayoutParams(rLParams); 
    } 
} 

는 이제 리뷰를 찾을 수 0

로 설정 높이 레이아웃 자체가보기를 추가하고이 호출 유 U 해달라고

view.startAnimation(new HeightAnimation(view,oldHight,i*10)); 
+0

LayoutParams의 경우 'old + (new-old) *'는 int가 아닙니다. '*'동작을 수행하려면 – user3201189

+0

내 편집을 확인하십시오. 나는 t 대신에 interpolatedTime을 실수로 사용했다. –

+0

view.startAnimation (new HeightAnimation (view, oldHight, i * 10));에서 생성자를 사용하지 않고 HeightAnimation을 제공 할 수있는 방법은 무엇입니까? – user3201189

관련 문제