Android開(kāi)發(fā)手冊(cè)SeekBar拖動(dòng)條使用實(shí)例
??實(shí)踐過(guò)程
??常用屬性
因?yàn)镾eekbar繼承自ProgressBar,所以ProgressBar支持的XML屬性SeekBar都適用。
【android:max="100"】:設(shè)置該進(jìn)度條的最大值
【android:progress="50"】:設(shè)置該進(jìn)度條的已完成進(jìn)度值
【android:progressDrawable="@drawable/icon_xinsui"】:自定義drawable顯示
【android:secondaryProgress="50"】:定義二級(jí)進(jìn)度值,值介于0到max。該進(jìn)度在主進(jìn)度和背景之間。比如用于網(wǎng)絡(luò)播放視頻時(shí),二級(jí)進(jìn)度用于表示緩沖進(jìn)度,主進(jìn)度用于表示播放進(jìn)度。
【android:splitTrack="false"】:設(shè)置進(jìn)度條的滑塊圖片
【android:thumb="@drawable/icon_xinsui"】:滑塊底部 背景樣式 (false為透明 )
公共方法總共有14個(gè),小空直接亮個(gè)截圖

??基本使用
Java版
<TextView
android:id="@+id/tvProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="數(shù)值范圍0~100之間,當(dāng)前值:30"
android:textSize="20sp" />
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:progress="30" />seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tvProgress.setText("數(shù)值范圍0~100之間,當(dāng)前值:"+progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});Kotlin版
seekBar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
tvProgress.setText("數(shù)值范圍0~100之間,當(dāng)前值:$progress")
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
然后使用Progressbar的屬性indeterminateDrawable指定即可。
??自定義樣式
這是系統(tǒng)自帶的一個(gè)對(duì)話框進(jìn)度條,樣式美觀度不敢恭維。
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bar);
ProgressDialog pb = new ProgressDialog(this);
pb.setMax(100);
//點(diǎn)擊外部是否可以被取消
pb.setCancelable(true);
//設(shè)置標(biāo)題
pb.setTitle("下載對(duì)話框");
//設(shè)置中間文本內(nèi)容
pb.setMessage("正在下載中....");
pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pb.show();
//在show后調(diào)用
pb.setProgress(50);
}
監(jiān)聽(tīng)方法 onStartTrackingTouch:當(dāng)開(kāi)始滑動(dòng)滑塊時(shí),會(huì)執(zhí)行該方法下的代碼
不管哪個(gè)平臺(tái)系統(tǒng)樣式都無(wú)法滿足多樣的市場(chǎng)需求和審美需求,自定義樣式就是每個(gè)平臺(tái)都具有的功能。
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:progress="30"
android:progressDrawable="@drawable/seekbar_one"
android:thumb="@drawable/icon_xinsui" />
<SeekBar
android:id="@+id/seekBarTwo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:progress="30"
android:progressDrawable="@drawable/seekbar_two"
android:thumb="@drawable/icon_xinsui" />
seekbar_one.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>
<solid android:color="#33AADD" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<solid android:color="#3CC4C4" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="#00ff00" />
</shape>
</clip>
</item>
</layer-list>
seekbar_two.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="5dp"/>
</shape>
<!-- 背景顏色-->
<color android:color="#CCCCCC"/>
</item>
<item android:id="@android:id/progress">
<clip
android:clipOrientation="horizontal"
android:gravity="left">
<shape>
<corners android:radius="5dp"/>
<!-- 開(kāi)始顏色,中途顏色,最后顏色-->
<gradient
android:startColor="#00FF00"
android:centerColor="#0000FF"
android:endColor="#FF0000"/>
</shape>
</clip>
</item>
</layer-list>
同理thumb其實(shí)也是可以自定義的,只不過(guò)這個(gè)通常美工給個(gè)圖就搞定了,如果是動(dòng)態(tài)整個(gè)drawable動(dòng)畫(huà)即可。
除此以外,通常我們還會(huì)遇見(jiàn)雙向選擇的滑動(dòng)條,比如購(gòu)物類(lèi)App選擇價(jià)格區(qū)間的時(shí)候。
可參考:
http://www.fzitv.net/article/250882.htm
http://www.fzitv.net/article/250876.htm
以上就是Android開(kāi)發(fā)手冊(cè)SeekBar拖動(dòng)條使用實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于Android開(kāi)發(fā)SeekBar拖動(dòng)條的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Android SeekBar控制視頻播放進(jìn)度實(shí)現(xiàn)過(guò)程講解
- Android?SeekBar充當(dāng)Progress實(shí)現(xiàn)兔兔進(jìn)度條Plus
- Android開(kāi)發(fā)雙向滑動(dòng)選擇器范圍SeekBar實(shí)現(xiàn)
- Android開(kāi)發(fā)自定義雙向SeekBar拖動(dòng)條控件
- Android通過(guò)SeekBar調(diào)節(jié)布局背景顏色
- Android自定義SeekBar實(shí)現(xiàn)滑動(dòng)驗(yàn)證且不可點(diǎn)擊
- Android SeekBar實(shí)現(xiàn)平滑滾動(dòng)
- Android SeekBar在刷新使用中需要注意的問(wèn)題
相關(guān)文章
Android ViewPager相冊(cè)橫向移動(dòng)的實(shí)現(xiàn)方法
本篇文章小編為大家介紹,Android ViewPager相冊(cè)橫向移動(dòng)的實(shí)現(xiàn)方法。需要的朋友參考下2013-04-04
Android app開(kāi)發(fā)中的Fragment入門(mén)學(xué)習(xí)教程
這篇文章主要介紹了Android app開(kāi)發(fā)中的Fragment入門(mén)學(xué)習(xí)教程,包括Fragment的創(chuàng)建和XML布局文件中的Fragment定義等,需要的朋友可以參考下2016-02-02
Android實(shí)現(xiàn)自動(dòng)匹配關(guān)鍵字并且標(biāo)紅功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)自動(dòng)匹配關(guān)鍵字并且標(biāo)紅功能,單關(guān)鍵字和多關(guān)鍵字進(jìn)行匹配,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
詳解dex優(yōu)化對(duì)Arouter查找路徑的影響
dex簡(jiǎn)單說(shuō)就是優(yōu)化后的android版.exe。每個(gè)apk安裝包里都有。相對(duì)于PC上的java虛擬機(jī)能運(yùn)行.class,android上的Davlik虛擬機(jī)能運(yùn)行.dex。本文將著重介紹dex優(yōu)化對(duì)Arouter查找路徑的影響2021-06-06
Android 多媒體播放API簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android 多媒體播放API簡(jiǎn)單實(shí)例的相關(guān)資料,這里附有代碼實(shí)例及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12
android TextView中識(shí)別多個(gè)url并分別點(diǎn)擊跳轉(zhuǎn)方法詳解
在本篇文章里小編給大家整理的是關(guān)于android TextView中識(shí)別多個(gè)url并分別點(diǎn)擊跳轉(zhuǎn)方法詳解,需要的朋友們可以學(xué)習(xí)參考下。2019-08-08
Android編程錄音工具類(lèi)RecorderUtil定義與用法示例
這篇文章主要介紹了Android編程錄音工具類(lèi)RecorderUtil定義與用法,結(jié)合實(shí)例形式分析了Android錄音工具類(lèi)實(shí)現(xiàn)開(kāi)始錄音、停止錄音、取消錄音、獲取錄音信息等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

