最近在研究 MPAndroidChart 的源碼沽讹,我去年接觸到這份開源代碼兄墅,剛看的時候真是和看天書一樣匠抗。不久前我想自己寫圖表的自定義控件统刮,發(fā)現(xiàn)自己真的難以寫出擴展性好、靈活性高的自定義控件账千。于是想起來自己曾經(jīng)看過的 MPAndroidChart 的代碼侥蒙,再把它拿出來研究研究。
研究的過程中匀奏,我發(fā)現(xiàn)里面有一些方法在百度上搜索不到相關(guān)的帖子鞭衩,想到以后有新手玩家想搜索這個方法卻搜不到是多么沮喪,于是就到Google官方文檔看了這個方法娃善,用中文寫了出來醋旦,同時也鼓勵新手玩家慢慢養(yǎng)成看官方文檔的習慣。
研究源碼是一件困難的事情会放。著名的源碼的產(chǎn)生的過程一般是這樣的:一個高手(或者是一個團隊)花了好長一段時間來實現(xiàn)某功能需求饲齐,寫代碼,優(yōu)化代碼咧最,進行了多次的反饋捂人,然后進行迭代升級。想掃幾遍就讀懂它是不可能的矢沿。我們看源碼就要有讀經(jīng)典書籍的心態(tài):一次看不懂滥搭,就多看幾次,看了一個月看不懂捣鲸,就多看幾個月瑟匆,不會的知識點就把它補上。讀源碼可能一時之間看不到有什么用栽惶,可能讀再久也看不到有什么用愁溜。但讀源碼應(yīng)該能讓我們更接近成為一個真正的程序員,而不是一個只會使用開源框架外厂、只會復(fù)制粘貼的碼農(nóng)吧冕象。
前面只是個人的一些胡思亂想的東西,下面進入正題汁蝶。
先上個效果圖渐扮。
紅色矩形那一塊區(qū)域是我自己寫的一個自定義 View,在里面畫了一個矩形掖棉。
關(guān)于RectF的inset()方法墓律。官方文檔如下:
大概意思就是:通過(dx,dy)插入矩形幔亥。如果 dx 是正的耻讽,則兩邊向內(nèi)移動,使矩形變窄紫谷。如果 dx 是負的齐饮,則兩邊向外移動捐寥,使矩形更寬。這同樣適用于 dy 和頂部和底部祖驱。
實現(xiàn)效果圖的關(guān)鍵代碼如下:
附上源碼
CSDN上傳限制最少的積分是2分握恳,這是要搞什么鬼啊。