【Code-Snippet】SeekBar

概述

SeekBar,拖動條。主要的要點是自定義的樣式,拖動條的值,拖動條值改變的監聽器等等。php

SeekBar的重要的屬性

style="@android:style/Widget.SeekBar" 指定樣式java

android:max="200" 最大值爲200,默認是100android

android:progress="100" 指定當前的值爲100bash

android:thumb 設置滑動塊的樣式ide

android:progressDrawable 設置進度條的圖片spa

progress值改變的監聽器:code

seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                textView.setText("Value:"+ Integer.toString( progress ) );
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                Log.e("------------","開始滑動!");
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Log.e("------------","中止滑動!");
            }
        });
複製代碼

系統提供的樣式:

普通版的 style="@android:style/Widget.SeekBar"orm

2016-04-20_072525.png

Holo版 style="@android:style/Widget.Holo.SeekBar"cdn

2016-04-20_072655.png

DeviceDefault style="@android:style/Widget.DeviceDefault.SeekBar"xml

2016-04-20_072815.png

Material style="@android:style/Widget.Material.SeekBar"

2016-04-20_073252.png

自定義

1)滑塊的自定義

<!-- This is the thumb on the seek bar. -->  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
   
     <item android:state_pressed="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_pressed" />  
   
     <item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_selected" />  
   
     <item android:state_selected="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_selected" />  
 
    <item android:drawable="@drawable/seek_thumb_normal" />  
</selector>  
複製代碼

它定義的是seekbar的滑塊樣式,內容很簡單,你們應該看得懂,分別對應着按下,選中,以及得到焦點時滑塊的圖片,這個是源碼的,你們照葫蘆畫瓢就行了。

<?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/bg3" />  
   
     <!-- 普通無焦點狀態 -->  
     <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/bg4" />  
</selector>  
複製代碼

2)進度條自定義

<style name="Widget.Material.SeekBar">
        <item name="indeterminateOnly">false</item>
        <item name="progressDrawable">@drawable/seekbar_track_material</item>
        <item name="indeterminateDrawable">@drawable/seekbar_track_material</item>
        <item name="thumb">@drawable/seekbar_thumb_material_anim</item>
        <item name="splitTrack">true</item>
        <item name="useDisabledAlpha">false</item>
        <item name="focusable">true</item>
        <item name="paddingStart">16dip</item>
        <item name="paddingEnd">16dip</item>
        <item name="mirrorForRtl">true</item>
        <item name="background">@drawable/control_background_32dp_material</item>
    </style>
複製代碼

固然,thumb能夠直接使用屬性標籤:android:thumb去指定, 這裏的style是自定義了不少東西,上面的這個是系統的 Material 效果的風格xml,有

  • progressDrawable 效果,就是進度條的樣式
  • indeterminateDrawable 設置繪製不顯示進度的進度條的Drawable對象
  • indeterminateOnly 是否不顯示進度條,true,不顯示
  • thumb 滑動塊樣式
  • background 背景
相關文章
相關標籤/搜索