兔兔进度条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.