SweepLoadingView 延時動畫

2021-09-20 04:50:05 字數 1903 閱讀 7910

這兩天寫了乙個關於延時載入的控制項,之前一直是用的 progresswheel, 後來參考了 lovejjfg 這個控制項設計思路還是很巧妙的。不會用作圖工具,湊合著看吧。

sweeploadin**iew.png

怎麼用?

"android:layout_width="112dp"

android:layout_height="112dp"

android:layout_centerhorizontal="true"

android:layout_margintop="72dp"

sweeploadin**iew:slv_circlecolor="#795548"

sweeploadin**iew:slv_circlewidth="8dp"

sweeploadin**iew:slv_duration="1200"

sweeploadin**iew:slv_gapangle="30"

sweeploadin**iew:slv_strokecap="square" />

效果圖

001.gif

奉上原始碼

* *

*/public class sweeploadin**iew extends view

public sweeploadin**iew(context context, attributeset attrs)

private void initview(attributeset attrs)

private void initobjectanimation()

@override

protected void onsizechanged(int w, int h, int oldw, int oldh)

@override

public void draw(canvas canvas) else

canvas.drawarc(rectf, startangle, sweepangle, false, paint);

}private void startsweepanimation()

if (!startangleobjectanimator.isstarted())

}private void stopsweepanimation()

private final class sweepangleanimatorlistener extends ******animatorlistener

}/\*\*

\* 處理掃瞄一周的 情況

\*/private void handlesweeprepeat()

issweeprepeat = !issweeprepeat;

}private final class angleproperty extends property

@override

public float get(sweeploadin**iew object) else

}@override

public void set(sweeploadin**iew object, float value) else

}}private float getsweepangle()

private void setsweepangle(float sweepangle)

private float getstartangle()

private void setstartangle(float startangle)

群延時和相位延時

翻譯自wikipedia 在訊號處理中,群延時是訊號通過裝置各個分量正弦波幅度經歷的延時,因此是各正弦波頻率的函式。相位延時,與幅度的延時相對照是各分量正弦波相位經過裝置的延時。當訊號通過放大器,揚聲器或者傳輸媒介時所有頻率分量會產生延時。不同頻率分量相位延時是不同的除非裝置是線性相位 線性相位和最...

mysql 延時佇列 rabbitmq 延時佇列

前言 某個產品 或者訂單,有個有效期 過了有效期要取消 方法一 寫個指令碼,用crontab 定時掃瞄 改變狀態 但是最低只能一分鐘 不適合 方法二 用swoole得毫秒定時器,每秒鐘去掃瞄表 明顯占用資源 mysql受不了 方法三 用rabbitmq延時佇列 一開始將其丟入mq 死信佇列,設定有效...

SpringBoot RabbitMq延時佇列例項

根據訪客預約的到訪時間,延時下發人臉資訊 先安裝rabbitmq,在安裝延時佇列外掛程式 死信交換機 配置檔案 佇列 交換機 routingkey org.springframework.boot spring boot starter amqp com.alibaba fastjson 1.2.6...