android 中 Chronometer 计时器的使用

布局:

<Chronometer
    android:id="@+id/played_time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:textSize="13sp"
    android:textColor="@color/music_text_white"
    android:text="00:00"/>
代码:

private void countTime() {
    if ( mRecordTime != 0 ){
        //暂停后继续计时
        played_time_view.setBase( played_time_view.getBase() + (SystemClock.elapsedRealtime()-mRecordTime) );
    }else if ( isForward ){
        //快进 seekTime秒 默认+20s
        if ( seekTime > 0 ){
            played_time_view.setBase( played_time_view.getBase() - seekTime*1000 );
        }else {
            played_time_view.setBase( played_time_view.getBase() - 20*1000 );
        }
        isForward = false;
    }else if ( isReverse ){
        //快退seekTime秒 默认-20s
        long time = 0l;
        if ( seekTime > 0 ){
            time = played_time_view.getBase() + seekTime*1000;
        }else {
            time = played_time_view.getBase() + 20*1000;
        }

        if ( time > SystemClock.elapsedRealtime() ){
            played_time_view.setBase( SystemClock.elapsedRealtime() );
        }else {
            played_time_view.setBase( time );
        }
        isReverse = false;
    }else if ( isJump ){
        played_time_view.setBase( SystemClock.elapsedRealtime() - seekTime*1000);
        isJump = false;
    }else {
        //设置时间基点
        played_time_view.setBase( SystemClock.elapsedRealtime() );
    }
    played_time_view.start();

}

private void stopCountTime(){
    played_time_view.stop();
    mRecordTime = SystemClock.elapsedRealtime();
}

private void resetCountTime(){
    played_time_view.setBase( SystemClock.elapsedRealtime() );
    played_time_view.stop();
    mRecordTime = 0L;
    mRecordTime = SystemClock.elapsedRealtime();
}

你可能感兴趣的:(Android)