Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義View實戰(SlideTab-可滑動的選擇器)

Android自定義View實戰(SlideTab-可滑動的選擇器)

編輯:關於Android編程

這篇博客我們來一發自定義控件的實戰,恰好前些天有一個小需求,效果圖如下:

\

??根據效果圖,我們可以確定,用自定義View完全可以搞定,在自定義控件系列博客第一篇中,我們總結了自定義View的幾個步驟:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCrzMs9BWaWV3o6y4srjHubnU7Le9t6gg19S2qNLlyvTQ1CDW2NC0b25NZWFzdXJlt723qLLiwb+/7bjfINbY0LRvbkRyYXe3vbeou+bWxr/YvP4NCjxwPj8/tbHIu6OsxOPDu9PQsdjSqs3qyKvSwNXVsr3W6Mil1/ajrNXiuPayvdboysfE47bUv9i8/tOmuMPU9cO00LTS0b6t09DBy83q1fu1xMu8wre6zbnmu66jrNXi1NrKtbzKx+m/9s/Cyseyu8/WyrW1xKOszfnN+c7Sw8fX1Lao0uW/2Lz+trzKx9f2tb3ExMDvyLHKssO0vs3X9sqyw7SjrMrXz8jO0sPH06a4w72ry/y7rbP2wLSjrNPQ0ru49r/JytO1xLmpztLDx8u8v7y1xMrTzbyho8v50tSjrNXiwO/O0sPHvavV4rj2sr3W6MHpu+61xLHku7vSu8/Co6zTydPaztLDx8/W1Nq7ubK7yLe2qNDo0qrX1Lao0uXExNCpyvTQ1KOs0tS8sNDo0qrU9dH5suLBv6Osy/nS1M7Sw8ew0dXiwb249rK91ujFsrW9uvPD5qGjPC9wPg0KPGgyIGlkPQ=="1-初步分析重寫ondraw繪制">1. 初步分析,重寫onDraw繪制

??首先我們分析一下這個控件裡面有哪些元素,有一條直線,上面有n個選項,分布著n個圓,當選中哪一個後這上面的圓變為藍色的,還有n項字,當選中後字變為藍色。下面我們初步確定一下需要的常量和一些簡單的計算:

一個供選擇的數組
String[] tabNames = new String[]{"tab1","tab2","tab3","tab4"} 一些必要的數據:字體大小mTextSize,字體顏色mColorTextDef,線段和圓圈的顏色mColorDef,被選中後的顏色mColorSelected,直線的高度mLineHight,圓圈的直徑mCircleHight,被選中後藍色空心圓圈的寬度mCircleSelStroke,當前選中的序號selectedIndex 直線的長度float lineLength=整個控件的寬度-左邊圓圈的半徑 -右邊圓圈的半徑(為了讓直線兩端正好在兩端圓圈的中心) 圓圈的分布間隔距離float splitLength = lineLength / (n-1); 字體與上面部分的間距mMarginTop

??在動手之前,我們要注意:直線的長度應該在控件完成測量後才能計算,所以應該在onMeasure中計算。現在我們可以動手了,首先繼承View,覆蓋構造方法,然後重寫onDraw,在上面畫出初步的輪廓。

代碼:




    

運行效果:
????這裡寫圖片描述

2. 重寫onMeasure計算寬高

??基本的效果圖已經出來了,不知道你們有沒有發現,我在寫布局文件的時候設置的高度是wrap_content,並且為控件設置了紅色背景以便於參考,運行結果顯示控件的高度卻占滿的整個屏幕,所以我們應該用重寫onMeasure測量控件的高度。對於此控件,它的高度設置為填充父窗體,高度應該是圓圈的直徑+字體的高度+字體與上面部分的距離。

重寫onMeasure:



    
    
                     
                         
          
        
           
            
           
           
           
    

布局中使用:




    

運行效果:
????這裡寫圖片描述



對於這個自定義控件的重要步驟和知識點到此為止就講完了,如果覺得講解得不夠細致,下面附上源碼,下載運行玩一遍再研究研究就差不多了,祝各位學習愉快。
 

源碼下載:

https://github.com/openXu/SlidingTab

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved