path button

码农软件 · 软件分类 · Android UI 组件 · 2019-04-27 12:57:05

软件介绍

我是基於這個修改的:http://www.oschina.net/p/pathbutton/similar_projects

改它的理由如下:
1、它原來這個沒有自適應不同的位置,例如想改到上方或者左上角,就比較麻煩。
2、它原來這個沒有真正移動子按鈕的物理位置,僅僅是以animation移動了動畫位置(實際left、right還是原來的地方,這是animation本來的性質)。這就使點擊比較麻煩,它原本的方式是全部點擊事件由父layout接收,檢測去到哪一個rect就相應不同按鈕,這就使這個父layout的再父layout(姑且叫祖layout)都沒法接收到onclick或其他事件。
3、它原本控制click也只監聽了ontouch的down事件,如果我longclick就無法分辨了。它這樣做的理由估計是因為down事件你可以設置return false,就不會把click事件攔截,它的父控件仍然可以拿到click事件。如果把up也做了,up一定要return true才生效,但return true就等於把事件截取不留給父控件。它這樣做貌似也能處理好點擊問題和遮蔽父控件的問題,但感覺有點掩耳盜鈴,不太規範。而且代碼也不太簡潔,尤其在activity裡要引用時就得引用一堆東西。
4、它這種佈局方式沒有考慮控件大小,動不動就fill_parent,加上第2點問題,就把祖控件全遮蔽。
5、它原來這個的封裝程度不足。例如自定義的animation類本來通用性不強,其實可以一並封裝在composelayout內,沒必要在activity裡面又再調用。結果在activity裡面要調用很多行才能用得上。而且它原來那個太依賴佈局文件,如果我每次使用的子按鈕數量不相同,又要改一大輪。
6、它原本的代碼靈活性不高,例如半徑、動畫時間都是寫死的。

我的修改基本就處理了以上的問題。
可以放在不同的位置,四個角和四條邊上;
子按鈕可以自定義,傳入按鈕的圖片id就可以,數量也沒限制(如果你太多也會很擠);
自適應寬度高度;
在佈局xml中只要擺一個這個控件就可以,不用手工再在裡面加一堆imagebutton;
子按鈕全部移動了物理位置,並且可以直接賦予onclicklistener,onlongclick或者ontouch的事件就沒做,你有興趣可以自行加上,就兩句話應該不難的;


控件的設置定位在java代碼裡,不在xml佈局文件。因為如果在佈局文件內加參數,又要加attr和命名空間,增加使用複雜程度(可能高手覺得沒所謂,但類似我這種爛水平來說就覺得很煩)。而且因為有不確定數量的子按鈕,要用xml傳遞參數也比較羅嗦,而且做法可能不太規範,所以沒有直接在構造函數中傳遞了。有興趣的朋友可以自行再修改。

另外,代碼內都有注釋的了。不過用了粵語寫,懶得改回語體文了,估計能看懂。

以上代碼在android2.1模擬器上測試運行無誤。如果更低的1.5和1.6就不保證了。

本文地址:https://codercto.com/soft/d/4496.html

HTML 5 与 CSS 3 权威指南

HTML 5 与 CSS 3 权威指南

陆凌牛 / 机械工业出版社华章公司 / 2011-4-7 / 69.00

如果你是一位有前瞻性的web前端工作者,那么你一定会从本书中受益,因为它就是专门为你打造的。 《HTML 5与CSS 3权威指南》内容系统而全面,详尽地讲解了html 5和css 3的所有新功能和新特性;技术新颖,所有知识点都紧跟html 5与css 3的最新发展动态(html 5和css 3仍在不断完善之中);实战性强(包含246个示例页面),不仅每个知识点都配有精心设计的小案例(便于动手......一起来看看 《HTML 5 与 CSS 3 权威指南》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具