自定义进度条无法顺利更新

时间:2017-07-18 15:14:08

标签: android animation android-animation android-progressbar

我正在尝试顺利运行循环进度条,但我没有结果。进度条应根据计时器值更新。

以下是我为进度条设置动画的方法,

int progress = (int)(this.mCurrentTimerValue/1000);
this.mProgressBarAnimation = ObjectAnimator.ofInt(this.mProgressBar,"progress",progress);
this.mProgressBarAnimation.setDuration(this.mCurrentTimerValue);
this.mProgressBarAnimation.setInterpolator( new LinearInterpolator());

其中 this.mCurrentTimerValue 是以ml为单位的时间。这个例子是10000

这是结果,

enter image description here

我想顺利展示进展,但我不能。我尝试使用 ObjectAnimator.ofFloat ,因为问题可能是我试图在整数空间中进行,但在这种情况下动画不起作用。

以下是我自定义进度条的方法,

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/progress">
    <rotate
        android:fromDegrees="270"
        android:toDegrees="270"
        android:pivotX="50%"
        android:pivotY="50%" >
        <shape
            android:innerRadiusRatio="2.5"
            android:shape="ring"
            android:thicknessRatio="25.0" >
            <gradient
                android:centerColor="@color/yellow"
                android:endColor="@color/yellow"
                android:startColor="@color/yellow"
                android:type="sweep" />
        </shape>
    </rotate>
</item>
<item android:id="@android:id/secondaryProgress">
    <rotate
        android:fromDegrees="270"
        android:toDegrees="270"
        android:pivotX="50%"
        android:pivotY="50%" >
        <shape
            android:innerRadiusRatio="2.5"
            android:shape="ring"
            android:thicknessRatio="25.0" >
            <gradient
                android:centerColor="@color/green"
                android:endColor="@color/green"
                android:startColor="@color/green"
                android:type="sweep" />
        </shape>
    </rotate>
</item>

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:indeterminate="false"
        android:progress="100"
        android:progressDrawable="@drawable/custom_progress_bar" />

我读过这些问题,但没有帮助我,

1 个答案:

答案 0 :(得分:0)

如果某人需要针对这种情况的解决方案,this answer帮助了我,但我承认我认为不是最好的。