Android 拖動(dòng)條SeekBar的簡(jiǎn)單使用

在Android開發(fā)中,拖動(dòng)條常常用于對(duì)系統(tǒng)某種數(shù)值的設(shè)置,例如播放視頻和音量等都會(huì)用到拖動(dòng)條SeekBar。SeekBar和進(jìn)度條十分相似,只是拖動(dòng)條可以通過滑動(dòng)塊的位置來標(biāo)志數(shù)值,并且允許用戶拖動(dòng)滑動(dòng)塊來改變值。此文章已經(jīng)同步到CSDN啦,歡迎訪問我的博客
1、SeekBar的常見的一些的屬性

  • style="@android:style/Widget.SeekBar" 指定seekbar的樣式
  • android:max="200" 指定seekbar的最大值為200,默認(rèn)是100
  • android:progress="75"指定seekbar的當(dāng)前值為75
  • android:thumb 設(shè)置seekbar的滑動(dòng)塊樣式
  • android:progressDrawable 設(shè)置seekbar的進(jìn)度條的樣式
    其中指定seekbar的當(dāng)前值,我們也可以通過代碼設(shè)置,如:seekBar.setProgress(75);

2、當(dāng)拖動(dòng)滑動(dòng)塊的位置的時(shí)候,為了監(jiān)聽SeekBar的拖動(dòng)情況,我們可以為它綁定一個(gè)onSeekBarChangeListener監(jiān)聽器

package per.lijuan.seekbardome;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private SeekBar seekBar;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        seekBar = (SeekBar) findViewById(R.id.progress);
        textView = (TextView) findViewById(R.id.text1);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // 當(dāng)拖動(dòng)條的滑塊位置發(fā)生改變時(shí)觸發(fā)該方法,在這里直接使用參數(shù)progress,即當(dāng)前滑塊代表的進(jìn)度值
                textView.setText("Value:" + Integer.toString(progress));
            }

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

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Log.e("------------", "停止滑動(dòng)!");
            }
        });
    }

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="10dp">

    <SeekBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/text1"
        android:maxHeight="2dp"
        android:minHeight="2dp"
        android:paddingBottom="3dp"
        android:paddingLeft="12dp"
        android:max="200"
        android:paddingRight="12dp"
        android:paddingTop="3dp"
        android:progressDrawable="@drawable/layer_progress"
        android:thumb="@drawable/shape_circle" />

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="left"
        android:padding="6dp"
        android:text="Value:0"
        android:textColor="#16BC5C"
        android:textSize="16dp" />
</RelativeLayout>

seekbar的滑動(dòng)塊樣式 shape_circle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <!-- solid表示遠(yuǎn)的填充色 -->
    <solid android:color="#16BC5C" />
    <!-- stroke則代表遠(yuǎn)的邊框線 -->
    <stroke
        android:width="1dp"
        android:color="#16BC5C" />
    <!-- size控制高寬 -->
    <size
        android:height="20dp"
        android:width="20dp" />
</shape>

設(shè)置seekbar的進(jìn)度條樣式 layer_progress.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">
        <shape>
            <corners android:radius="3dp" />
            <solid android:color="#ECF0F1" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="3dp" />
                <solid android:color="#C6CACE" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="3dp" />
                <solid android:color="#16BC5C" />
            </shape>
        </clip>
    </item>
</layer-list>

好啦,我們看看效果圖唄:


這里寫圖片描述

3、除了自定義SeekBar的樣式,我們也可以使用系統(tǒng)提供的SeekBar樣式,例如:
(1)普通的

style="@android:style/Widget.SeekBar"
這里寫圖片描述

(2)DeviceDefault

style="@android:style/Widget.DeviceDefault.SeekBar"
這里寫圖片描述

(3)Holo

style="@android:style/Widget.Holo.SeekBar"
這里寫圖片描述
好了,本篇文章就這樣啦,存在總結(jié)不到位的地方還望指導(dǎo),感謝^_^
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,442評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評(píng)論 1 295
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,740評(píng)論 25 708
  • 太長(zhǎng)了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,245評(píng)論 3 283
  • 這個(gè)故事講的是一個(gè)家庭的故事。夫妻倆為了生計(jì)帶著孩子從倫敦來到上海工作。漸漸的產(chǎn)生了矛盾,妻子因?yàn)楦赣H的病回了倫敦...
    WillowYang閱讀 211評(píng)論 0 2
  • 整理包包時(shí),發(fā)現(xiàn)夾層的一枚平安符,已經(jīng)忘記是什么時(shí)候放進(jìn)包里的了。 人,很多時(shí)候都這么健忘,當(dāng)初帶著十二分的誠(chéng)意,...
    a6a8185976e0閱讀 214評(píng)論 0 0
  • 周六福的前妻、老鄉(xiāng),一個(gè)溫柔善良為愛執(zhí)著、為感情執(zhí)著的女人,她從小生活在農(nóng)村,又失去父愛,就因?yàn)樗且粋€(gè)女孩子,所...
    沈春陽(yáng)粉絲團(tuán)閱讀 1,589評(píng)論 0 0