进度条
This commit is contained in:
parent
c5153e3a95
commit
e4dc667e7a
|
|
@ -32,6 +32,8 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
||||||
private var mPlayer: YouTubePlayer? = null
|
private var mPlayer: YouTubePlayer? = null
|
||||||
private var mVideoData: YoutubeVideo? = null
|
private var mVideoData: YoutubeVideo? = null
|
||||||
private var mIsPlaying: Boolean = false
|
private var mIsPlaying: Boolean = false
|
||||||
|
private var mCurPlayedSecond: Float = 0F
|
||||||
|
private var mTotalDuration: Float = -1F
|
||||||
|
|
||||||
|
|
||||||
override fun inflateViewBinding(
|
override fun inflateViewBinding(
|
||||||
|
|
@ -199,6 +201,17 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCurrentSecond(youTubePlayer: YouTubePlayer, second: Float) {
|
||||||
|
super.onCurrentSecond(youTubePlayer, second)
|
||||||
|
mCurPlayedSecond = second
|
||||||
|
updateProgressbar()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onVideoDuration(youTubePlayer: YouTubePlayer, duration: Float) {
|
||||||
|
super.onVideoDuration(youTubePlayer, duration)
|
||||||
|
mTotalDuration = duration
|
||||||
|
}
|
||||||
|
|
||||||
override fun onStateChange(
|
override fun onStateChange(
|
||||||
youTubePlayer: YouTubePlayer,
|
youTubePlayer: YouTubePlayer,
|
||||||
state: PlayerConstants.PlayerState
|
state: PlayerConstants.PlayerState
|
||||||
|
|
@ -242,6 +255,16 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
|
||||||
mPlayer?.pause()
|
mPlayer?.pause()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun updateProgressbar() {
|
||||||
|
with(binding?.progressBarPlayer!!) {
|
||||||
|
setMax(100)
|
||||||
|
if (mTotalDuration > 0) {
|
||||||
|
setProgress((100*mCurPlayedSecond/mTotalDuration).toInt())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun hidePlayIconAnim() {
|
private fun hidePlayIconAnim() {
|
||||||
if (!binding?.playIcon!!.isVisible) {
|
if (!binding?.playIcon!!.isVisible) {
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -155,4 +155,21 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<!--<ProgressBar
|
||||||
|
android:id="@+id/progress_bar_player"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="3dp"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
/>-->
|
||||||
|
|
||||||
|
<com.ama.core.architecture.widget.CustomProgressBar
|
||||||
|
android:id="@+id/progress_bar_player"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="3dp"
|
||||||
|
android:layout_marginBottom="6dp"
|
||||||
|
android:layout_marginHorizontal="15dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.ama.core.architecture.widget
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.Canvas
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.graphics.Paint
|
||||||
|
import android.util.AttributeSet
|
||||||
|
import android.view.View
|
||||||
|
|
||||||
|
class CustomProgressBar(context: Context, attrs: AttributeSet) : View(context, attrs) {
|
||||||
|
|
||||||
|
private var progress = 0
|
||||||
|
private var max = 100
|
||||||
|
|
||||||
|
private val grayColor = Color.parseColor("#1affffff")
|
||||||
|
private val greenColor = Color.parseColor("#ff00ff09")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private val paint = Paint().apply {
|
||||||
|
isAntiAlias = true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDraw(canvas: Canvas) {
|
||||||
|
super.onDraw(canvas)
|
||||||
|
val width = measuredWidth.toFloat()
|
||||||
|
val height = measuredHeight.toFloat()
|
||||||
|
|
||||||
|
paint.color = grayColor
|
||||||
|
canvas.drawRoundRect(0f, 0f, width, height, width/2, 0F, paint)
|
||||||
|
|
||||||
|
val progressWidth = (width) * progress / max
|
||||||
|
if (progressWidth > 0) {
|
||||||
|
paint.color = greenColor
|
||||||
|
canvas.drawRoundRect(0f, 0f, progressWidth, height, width/2, 0F, paint)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun setProgress(progress: Int) {
|
||||||
|
this.progress = progress.coerceIn(0, max)
|
||||||
|
invalidate()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setMax(max: Int) {
|
||||||
|
this.max = max
|
||||||
|
invalidate()
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue