一般計時類的自定義 view 都要考慮乙個問題,那就是繪製是需要時間的,雖然很短,但是隨著時間的推移,誤差就會越來越大,我之前寫過自定義 view 實現鐘錶功能的部落格,當時是通過每秒鐘獲取一次系統時間,然後根據系統時間重新繪製來保證不會產生誤差的,如果要實現秒錶功能,這個方法明顯不行,應為秒錶是自己計時的,和系統時間沒有關係,為了防止產生誤差,我們可以每秒鐘都執行一次動畫,一秒鐘過完之後,無論動畫有沒有執行完,強制將時間推進到一秒之後,由於一秒鐘之內產生的誤差非常小,幾乎無法察覺,這樣就能有效的防止隨著時間的推移而產生較大的誤差了,接下來就直接貼上自定義秒錶的**
attrs;
<?xml version="1.0" encoding="utf-8"?>
stopwatchview:
public class stopwatchview extends view
public stopwatchview(context context, attributeset attrs)
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
@override
protected void ondraw(canvas canvas)
//初始化控制項
private void initview(context context, attributeset attrs)
//初始化畫筆
private void initpaint()
//初始化屬性動畫
private void initanimator()
});animator.addlistener(new animator.animatorlistener()
@override
public void onanimationend(animator animation)
@override
public void onanimationcancel(animator animation)
@override
public void onanimationrepeat(animator animation)
}});
}// 計算寬度
private int measurewidth(int measurespec) else else }}
return result;
}// 計算高度
private int measureheight(int measurespec) else else }}
return result;
}//畫背景
private void drawbackground(canvas canvas)
//畫大刻度
private void drawbigscale(canvas canvas)
paint.setcolor(otherscalecolor);
paint.setstrokewidth(oneunit * 2);
for (int i = 0; i < 60; i++)
canvas.rotate(6);
}paint.setcolor(thirdscalecolor);
for (int i = 0; i < 300; i++)
canvas.rotate((float) 1.2);}}
/* private void drawnumber(canvas canvas)
}*///畫小圓盤和圓盤上的刻度
private void drawsmalldial(canvas canvas)
}//畫秒針
private void drawbigpointer(canvas canvas)
//畫毫秒針
private void drawsmallpointer(canvas canvas)
//開始計時
public void start()
//暫停計時
public long pause()
return 0;
}//暫停後重新計時
public void restart(long playtime)
}//重置秒錶狀態
public void clean()
}}
注釋寫得很清楚了,這裡不再過多解釋
Python 實現秒錶功能
python 實現秒錶功能 以下例項使用 time 模組來實現秒錶功能 例項 import time print 按下回車開始計時,按下 ctrl c 停止計時。while true try input 如果是 python 2.x 版本請使用 raw input starttime time.ti...
ChinaExcel報表自定義報表功能
目前能夠有自定義功能的報表為數不少,但真正能夠實現自定義功能的實際上少之又少,以下是評判的幾個標準 一 介面定義功能 a 在介面定義中,是否可以自動生成介面,是否可以對已經生成的介面進行任意的修改,如修改字型 顏色 線,行寬等等,都成為介面是否能夠自定義的參考。b 能否提供類 excel 等操作方式...
Android自定義View實現
android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...