Android之SeekBar總結(一)


 2015-04-24

 

 

SeekBar:

一種特殊的進度條,包含一個滑塊用於調節進度值。

API 中目錄結構如下:

 

 


 

包含幾種特殊的屬性:

   1: max:設置進度條的最大值 。對應方法:setMax(int max); max=100,代表它的取值范圍是0-100,共101個值;

 

2: progress: 設置默認的進度值 對應有方法: setProgress(int progress);

3secondaryProgresss : 設置默認緩沖值 對應的方法 setSecondaryProgress(int  secondaryProgresss );

 


 

以上的方法和成員都是繼承自ProgressBar;而SeekBar自帶的特殊屬性如下:

4thumb : 滑塊屬性,應該對應是一個drawable資源;

5progressDrawable,表示SeekBar的背景圖片

6SeekBar類包含一個setOnSeekBarChangeListener的方法。當用戶使用seekBar的時候會觸動該方法,一般用於設置監聽事件

 

SeekBar.OnSeekBarChangeListener:是一個public static interface 。包含有三個方法:

 

用戶在使用時必須實現該接口中的方法,或者使用匿名內部類。

 

二:用戶自定義的SeekBar樣式:

當前的SeekBar不能滿足用戶需求的時候,我們可以自定義SeekBar來實現各自想要的功能和視覺體驗。

簡單的自定義:在xml中自定義,可以實現不同的背景圖和滑塊,讓SeekBar UI體驗更好。

復雜的自定義:用java代碼重寫MySeekBar代碼extends SeekBar;可以給MySeekBar添加一些控件和功能。

 

先看看簡單的實現

自定義SeekBar的滑塊定義為:android:thumb="@drawable/thumb_bar"

這時需要在res/drawable文件下自定義一個thumb_bar.xml

它調用的thumb_bar.xml的內容如下

<?xml version="1.0" encoding="UTF-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 按下狀態 -->

    <item android:state_pressed="true"

        android:drawable="@drawable/thumb_dn" />

 

    <!-- 焦點狀態 -->

    <item android:state_focused="true"

        android:drawable="@drawable/thumb_up" />

    

    <!-- 默認狀態 -->

    <item android:drawable="@drawable/thumb_up" />  

    

</selector>

//注釋:以上代碼來源網上

注意圖中的Selector 標記和狀態標記。通過Selector可以在不同狀態中選擇不同的圖片,比如當用戶按下時,用A照片,不按時用B照片。

 

自定義SeekBar背景圖的實現android:progressDrawable="@drawable/bg_bar"

與自定義的滑塊實現機制差不多:都是在屬性中引用一個XML文件,然后在xml文件中自定義圖片。

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 背景圖 -->

    <item android:id="@+android:id/background" android:drawable="@drawable/bar_dn" />

    <!-- 第二進度圖 -->

    <item android:id="@+android:id/SecondaryProgress" android:drawable="@drawable/bar_dn" />

    <!-- 進度度 -->

    <item android:id="@+android:id/progress" android:drawable="@drawable/bar_up" />

</layer-list>

===============================================================

標記的作用:layer-list:layer-list可以將多個圖片按照順序層疊起來。其中的Item有兩個重要的xml屬性:androidid 和 androiddrawable屬性。

 

                     

       

                  

 

//注釋:圖片資源;來源網絡

最終結果顯示如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM