2012-08-23 2 views
0

ProgressBar 클래스를 확장하여 수직 진행 막대를 구현했습니다. 내가 의도하지 않은 큰 직사각형 영역을 지우는 것을 제외하고는 모든 것이 잘 작동합니다.수직 진행 막대를 구현할 때 버그가 발생합니다.

내 주요 레이아웃 XML의 진행률 표시 줄의 정의는 다음과 같습니다

<info.realjin.someapp.view.VerticalProgressBar 
    android:id="@+id/progressbar1" android:layout_width="wrap_content" 
    android:layout_height="fill_parent" android:layout_marginTop="50dip" 
    style="@style/Widget.ProgressBar.RegularProgressBar" /> 

스타일의 XML은 다음과 같습니다

<style name="Widget"></style> 

<style name="Widget.ProgressBar"> 
    <item name="android:indeterminateOnly">true</item> 
    <item name="android:indeterminateBehavior">repeat</item> 
    <item name="android:indeterminateDuration">3500</item> 
    <item name="android:minWidth">4dip</item> 
    <item name="android:maxWidth">40dip</item> 
    <item name="android:minHeight">4dip</item> 
    <item name="android:maxHeight">400dip</item> 
</style> 

<style name="Widget.ProgressBar.RegularProgressBar"> 
    <item name="android:indeterminateOnly">false</item> 
    <item name="android:progressDrawable">@drawable/newsprogressbar</item> 
    <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> 
    <item name="android:minHeight">1dip</item> 
    <item name="android:maxHeight">400dip</item> 
</style> 

지금까지 내가 아는 한, 수평 진행 bar (공식 진행 막대) 정의에서 "android : layout_width"속성은 "fill_parent"이어야하고 "android : layout_height"속성은 "wrap_content"여야합니다. 그리고 내 수직 진행 바 정의에서 바 기능을 원활히 얻으려면 위의 두 속성을 역으로 정의해야합니다. 하지만 이렇게하면 시작 부분에서 언급 한대로 진행률 표시 줄의 상단과 하단 사이의 모든보기가 지워집니다. 나는 그것을 어떻게 피할 수 있습니까?

덧붙여서, 저는 실험을했습니다 --- 수직 진행률 막대 클래스가 메서드를 재정의하지 않고 공식 진행률 막대 클래스를 확장하더라도 영역이 지워집니다.

답변

0

나는 이것에 관한 튜토리얼을 얼마 전에 썼다. http://www.androidenea.com/2011/10/creating-custom-view-part-1-graphics.html 자신의 코드에 대한 영감으로 자유롭게 사용하십시오.

더 이상 눈을 보지 않고서도 귀하의 의견이 onMeasure의 잘못된 측정 값을보고 한 것으로 판단됩니다.

+0

많은 세부 정보를 제공합니다. 사용자 정의보기를 다시 작성하고 내부의 메커니즘을 배우기 위해 튜토리얼을 따라야하거나 아무것도 배우지 않고 오래된 프로그램을 디버깅하는 데 많은 시간을 할애해야한다고 생각합니다. 사실 두 튜토리얼을 병합했습니다 (하나는 세련된 진행입니다. bar, 다른 하나는 수직 진행 바입니다.) 그러나 진행 바에있는 메커니즘을 알지 못합니다. – realjin

관련 문제