編輯:關於Android編程
目前正在做的一個小項目中遇到了需要制作弧形listview的需求,要求是listview向右變為弧形,在空白部分顯示一定的內容。具體顯示如下:
以屏幕左上角或者左邊緣中心或者左下角為0,0點建立一個xy軸圖,那麼弧形listview最主要的核心其實就在於:獲取listeview的每個item相對於原點所在的Y軸位置,然後使用自己設計好的弧度的拋物線方程計算出其在X軸上的偏移量,然後將每個item進行位移即可。
想明白這點後,可以在網上找到弧形listview的資源,找到後如圖:
首先感謝這位朋友的代碼,顯然已經很貼近了,其中有最主要的偏移量計算的類,將其中的偏移變量通過拋物線方程計算後重寫就能達到更大的彎曲弧度了,計算過程的草稿紙不知道丟哪兒了,就不貼圖了。總之我就是在這個基礎上去掉了放大縮小和傾斜的效果代碼,並改寫了偏移量得到了如圖的效果:
代碼就不貼了,可以下載項目進行詳細查看,注釋比較完整。至於拋物線方程的計算,有數學基礎的完全可以算出一個 X=包含Y量的計算式,這就是偏移量。
制作出了最主要的弧形listview後就是左邊信息框的顯示,這個信息框的大小比較取巧,只是做了寬高各一半的處理放置在最左邊垂直居中,其實更保險的做法的應該是確定了信息框的高度後,通過上面算出的變量計算出這個框max寬度(也就是信息框固定高度時右上下角與listview內弧邊緣挨著的寬度),設置個小於max的值,這樣視圖就不會和listeview沖突,不過測試這裡的取巧辦法在720和1080屏幕上也能完美顯示,偏移量是通過屏幕尺寸上的Y軸得到的,信息框的寬高也是去屏幕尺寸的一半,這些都會根據實際的屏幕尺寸進行同時變化,所以應該不會出現視圖遮蓋的情況,也就懶得做這一步了……
完成後最主要的內容就完成了,剩下的也就是設置最後一個item為 添加 功能,點擊後會進入到添加新選項的一個gridview展示界面,選擇其中一個就會再進入到輸入賬號密碼的界面,只有在都有輸入內容的情況下才會出現完成按鈕,點擊完成後回到弧形列表視圖,並會直接刷新這個listview視圖,直接顯示在剛才新添加的圖標的位置。信息框的內容展示就不多說了,只是做一個簡單的關聯展示。流程圖如下:
以上雖然有三個界面,但其實所有的布局都放在一個布局文件中,Activity也只有一個,代碼中注釋寫的很清楚了,項目是eclipse的,studio用於復制粘貼下主要代碼類就ok了。
目前作為一個比較簡單的demo上傳,其中的存儲方式也沒用sqllite,因為項目是和朋友一起搞的,也沒設計圖,就自己想著做的漂亮些,估計之後還要做向左劃動item原來的位置彈出刪除按鈕,點擊item後其中的圓形圖前顯示一個水滴狀方向標指向屏幕左邊緣中心(也就是指向信息框的感覺),會在不同的位置變換角度來永遠指向屏幕左邊緣中心,有點類似指南針……等美化或者實際功能,還要完善所有的界面,工作纏身也不知何時能搞出來,就先傳下這個大概完成的項目。
第一次寫CSDN微博,還不知道怎麼設置那個下載按鈕直接跳轉到下載界面……
項目下載地址為:http://download.csdn.net/detail/kule47/9476945
Activity數據傳遞之基本數據類型在這篇文章中,我寫了通過putExtra()方法在activity之間傳遞基本數據類型但是如果我們想傳遞對象還用這種方法會發現報錯,
前言當前的網絡開源庫有許多,如volley,okhttp,retrofit等,這三個庫當前是比較火的,其中,okhttp和retrofit由square團隊開發。關於這
UIScrollView是內容滾動視圖,作為父視圖時,可以添加多個視圖控件,然後通過設置其特有的contentSize屬性,以便控制進行水平方向,或垂直方向的滾動。水平方
最近學習了WebView組件,寫了一個有道詞典的小案例,分享給大家,供大家參考,具體內容如下效果圖:源碼下載:https://coding.net/u/gxs1225/p