From 9904e5f900ba751c1fe719cdf889f00e9f1418e8 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期三, 21 五月 2025 14:14:04 +0800 Subject: [PATCH] save --- app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt | 58 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 49 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt index c244512..d2c726c 100644 --- a/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt +++ b/app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt @@ -48,13 +48,17 @@ private val act by lazy { requireActivity() as IncludeActivity } private var voiceIndex = -1 //点击播放的声音序号 0-5取值 - private val voiceViews by lazy { arrayListOf(cl_voice1,cl_voice2,cl_voice3,cl_voice4,cl_voice5,cl_voice6) } + private val voiceViews by lazy { arrayListOf(cl_voice1_real,cl_voice2_real,cl_voice3_real,cl_voice4_real,cl_voice5_real,cl_voice6_real) } private var playing = false private val answerImg = arrayListOf<String>() //随机答案图片 private var currentImage = 0 //当前作答的题号:2,4,5 private var nowVoiceView: View? = null + + private var isAutoPlaying = false //true自动播放流程 + + var right = true //true进入下一题为全对,false 一旦答错过就置为false,此时进入下一题,本题算做错误 override fun onFirstVisibleToUser() { player.setOnAudioStatusUpdateListener(this) @@ -87,13 +91,23 @@ } data?.apply { val originList = subjectList[group] - iv_1.setImageURI(originList[0].img) - iv_2.setImageURI(originList[1].img) - iv_4.setImageURI(originList[3].img) answerImg.clear() answerImg.add(originList[2].img) answerImg.add(originList[4].img) answerImg.add(originList[5].img) + cl_voice1_real.postDelayed({ + iv_1.setImageURI(originList[0].img) + iv_2.setImageURI(originList[1].img) + iv_4.setImageURI(originList[3].img) +// if (cl_1.width > dip(203)){ +// voiceViews.forEach { +// it.layoutParams.width = dip(159) +// it.layoutParams.height = dip(52) +// it.requestLayout() +// } +// } + voiceViews.forEach { it.visible() } + },500) } voiceViews.forEachIndexed { index, constraintLayout -> if (index == 0) @@ -105,17 +119,19 @@ constraintLayout.isEnabled = data!!.subjectList[group][index].listend } } - showVoiceEnable() initClick() + showVoiceEnable() + isAutoPlaying = true + voiceViews[0].callOnClick() } private fun initClick() { voiceViews.forEachIndexed { index, constraintLayout -> - constraintLayout.clickDelay { + constraintLayout.setOnClickListener { if (!playing){ if (index!=0&&!data!!.subjectList[group][index-1].listend){ myToast("请按顺序听语音") - return@clickDelay + return@setOnClickListener } voiceIndex = index handler?.sendEmptyMessage(PLAY_VOICE) @@ -139,6 +155,7 @@ motion.transitionToEnd() showResultAnim() }else{ + right = false handler?.sendEmptyMessage(PLAY_ERROR) iv_error_1.visible() iv_error_1.postDelayed({ @@ -164,6 +181,7 @@ motion.transitionToEnd() showResultAnim() }else{ + right = false handler?.sendEmptyMessage(PLAY_ERROR) iv_error_2.visible() iv_error_2.postDelayed({ @@ -189,6 +207,7 @@ motion.transitionToEnd() showResultAnim() }else{ + right = false handler?.sendEmptyMessage(PLAY_ERROR) iv_error_3.visible() iv_error_3.postDelayed({ @@ -353,6 +372,8 @@ */ fun recover(){ Log.e(TAG,"回到上一题,恢复答题前的状态") + right = true + isAutoPlaying = false motion.progress = 0f clearAnswerImg() currentImage = 0 @@ -472,7 +493,7 @@ }else{ hideAnswerImg() Log.e(TAG,"本题全部答对,3秒后进入下一图") - handler?.sendEmptyMessageDelayed(TO_NEXT,3000) + handler?.sendEmptyMessageDelayed(TO_NEXT,500) //万俊杰:缩短为0.5秒 } } } @@ -482,8 +503,27 @@ rightPlaying = false data!!.subjectList[group][currentImage].completed = true nowVoiceView?.callOnClick() - }else + }else{ subject.listend = true + if (isAutoPlaying) + when(voiceIndex){ + 0-> voiceViews[1].callOnClick() + 1-> voiceViews[2].callOnClick() + 3-> voiceViews[4].callOnClick() + 2,4,5-> isAutoPlaying = false + } + else if (subject.completed){ + when(voiceIndex){ + 2->{ + isAutoPlaying = true + voiceViews[3].callOnClick() + } + 4->{ + voiceViews[5].callOnClick() + } + } + } + } showVoiceEnable() } -- Gitblit v1.7.1