实现垂直进度条时发生错误

时间:2012-08-23 06:09:39

标签: android progress-bar

我通过扩展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>

据我所知,在水平进度条(官方进度条)定义中,“android:layout_width”属性应为“fill_parent”,“android:layout_height”属性应为“wrap_content”。在我的垂直进度条定义中,我必须如上所述反向定义这两个属性以获得良好的条形函数。但是如果我这样做,进度条顶部和底部之间的所有视图都将被清除,正如我在开头提到的那样。我怎么能避免它?

顺便说一下,我做了一个实验---即使垂直进度条类扩展了官方进度条类而没有任何方法被覆盖,该区域也会被清除。

1 个答案:

答案 0 :(得分:0)

我刚才写了一篇关于这个的教程。 http://www.androidenea.com/2011/10/creating-custom-view-part-1-graphics.html 随意使用它作为您自己的代码的灵感。

如果不进一步了解,我怀疑你的观点是在onMeasure中报告错误的测量结果。