兔兔進度條Plus——SeekBar充當Progress

語言: CN / TW / HK

theme: Chinese-red

我正在參加「兔了個兔」創意投稿大賽,詳情請看:「兔了個兔」創意投稿大賽

前言

之前寫的progress其實根本沒有起到進度條的作用,太顯眼,而且並不好看,所以有了新的想法,我們將ProgressBar控制元件換成SeekBar控制元件,然後再將它的thumb指示器換成小兔子即可。

正篇

實現過程

首先,我們在需要進度條的頁面佈局的最開始加上下面程式碼: XML <SeekBar android:id="@+id/vSeekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:thumb="@mipmap/rabbit_progress"/> 其中thumb屬性就是可以讓你換指標樣式的,而SeekBar其實也是多用於播放器的進度選擇器之類的,由於seekbar是可以拖動的,所以我們得把控制元件拖動給禁止了: Kotlin binding.vSeekBar.isEnabled = false 接著,我們為了更好的展示效果,在seekbar控制元件下面加了一個Button:

image.png Kotlin binding.vButton.setOnClickListener { if (binding.vSeekBar.visibility != View.GONE) { binding.vSeekBar.progress += 10 } if (binding.vSeekBar.progress == 100) { binding.vSeekBar.progress = 0 } } 新增完按鈕後,我們為按鈕設定點選事件,每點一次就會出現進度條加10的事件,到達100後再置為0重複操作:

f6e01d316d1532e92a789f5e2291e923.gif

這樣,我們就有了一個兔子往前進的進度條,然後我們再把Button去除,再換到webview的webChromeClient中的重寫方法onProgressChanged中控制進度條增加的邏輯即可: Kotlin binding.vSeekBar.progress = newProgress if (newProgress == 100) { binding.vSeekBar.visibility = View.GONE } else { binding.vSeekBar.visibility = View.VISIBLE } 當進度條加完後,就隱藏該控制元件,這樣也就不會一直看到這個控制元件。

總結

雖然內容不多,但是問題還是很多的,如果可以再把style樣式做一下,效果會更好,然後再重新定義一下進度條本體的顏色和形狀,不過,目前我對這部分還看的比較少,網上看到的自定義也非常繁多,等後面用Kotlin自定義View熟練了再重新畫一個Progress或SeekBar.