app/src/main/java/com/dollearn/student/dialog/DifficultyDialog.kt
@@ -6,8 +6,10 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.DialogFragment import cn.sinata.xldutils.utils.myToast import cn.sinata.xldutils.utils.screenWidth import com.dollearn.student.R import com.dollearn.student.ui.home.SuperListenActivity import kotlinx.android.synthetic.main.dialog_diff.* import org.jetbrains.anko.wrapContent @@ -31,13 +33,51 @@ override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) rb_0.isSelected = true tv_cancel.setOnClickListener { callback?.onCancel() dismiss() } val level = (activity as SuperListenActivity).level when(level){ 1->{ rb_2.alpha = 0.6f } 0->{ rb_2.alpha = 0.6f rb_1.alpha = 0.6f } } rb_0.setOnClickListener { rb_1.isSelected = false rb_2.isSelected = false rb_0.isSelected = true } rb_1.setOnClickListener { if (rb_1.alpha!=1f){ myToast("请先完成上一难度再挑战") }else{ rb_0.isSelected = false rb_1.isSelected = true rb_2.isSelected = false } } rb_2.setOnClickListener { if (rb_2.alpha!=1f){ myToast("请先完成上一难度再挑战") }else{ rb_0.isSelected = false rb_1.isSelected = false rb_2.isSelected = true } } tv_ok.setOnClickListener { callback?.onOk(if (rb_0.isChecked) 0 else if (rb_1.isChecked) 1 else 2) callback?.onOk(if (rb_0.isSelected) 0 else if (rb_1.isSelected) 1 else 2) } } app/src/main/java/com/dollearn/student/network/ApiService.kt
@@ -115,6 +115,9 @@ @POST(Apis.gameAchievement) fun gameAchievement(@Body body: String): Flowable<ResultData<Int?>> @GET(Apis.userGameDifficulty) fun userGameDifficulty(@Query("week") week: Int): Flowable<ResultData<Int?>> @GET(Apis.teamSchedule) fun teamSchedule(@Query("day") day:Int,@Query("type") type:Int,@Query("week") week:Int): Flowable<ResultData<ProgressBean>> app/src/main/java/com/dollearn/student/network/Apis.kt
@@ -50,6 +50,7 @@ const val gameHearing = "study/base/study/gameHearing" const val gameMemory = "study/base/study/gameMemory" const val gameAchievement = "study/base/study/gameAchievement" const val userGameDifficulty = "study/base/study/userGameDifficulty" /** app/src/main/java/com/dollearn/student/network/HttpManager.kt
@@ -191,6 +191,13 @@ } /** * 获取可用游戏难度 */ fun userGameDifficulty(week: Int): Flowable<ResultData<Int?>> { return request().userGameDifficulty(week) } /** * 回复进度 */ fun teamSchedule(day: Int,week: Int,type: Int): Flowable<ResultData<ProgressBean>> { app/src/main/java/com/dollearn/student/network/entity/Medal.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/QrBean.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/Rank.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/RechargeItem.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/RecordSchedule.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/ReserveRecord.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/RewardAnswer.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/RewardQuestion.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/StudyRecord.kt
@@ -8,12 +8,11 @@ data class GameRecord( val accuracy: String, val createBy: String, val createTime: String, val time: String, val disabled: Boolean, val gameDifficulty: Int, val gameId: Int, val gameName: String, val id: Int, val updateBy: String, val updateTime: String, val useTime: Int, app/src/main/java/com/dollearn/student/network/entity/TeacherData.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/TestingAnswer.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/TestingQuestion.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/TestingRecord.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/TestingResult.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/UserData.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/Week.kt
@@ -3,6 +3,7 @@ data class Week( val id: String, val quarter: Int, val canStudy: Boolean, val title: String, val totalIntegral: Long, val week: Int app/src/main/java/com/dollearn/student/network/entity/WeekItem.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WeeksOfCourseDetails.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/Welfare.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WelfareDetail.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WelfareHomeData.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WorldCupBean.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WorldCupRecord.kt
File was deleted app/src/main/java/com/dollearn/student/network/entity/WorldRank.kt
File was deleted app/src/main/java/com/dollearn/student/ui/TransparentStatusBarActivity.kt
@@ -29,22 +29,4 @@ abstract fun initClick() abstract fun initView() /** * 状态栏和标题采用白色风格 */ fun useWhiteTitle(){ titleBar.setTitleColor(R.color.textColor) titleBar.backgroundColorResource = R.color.white // rootLayout.backgroundColorResource = R.color.white titleBar.leftView.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.back,0,0,0) } // /** // * 微信登录是否有手机号,没有就跳绑定页面 // */ // fun checkPhone():Boolean{ // return if (SPUtils.instance().getBoolean(Const.User.NO_PHONE)){ // startActivity<BindPhoneActivity>() // false // } else true // } } app/src/main/java/com/dollearn/student/ui/home/ChooseVoiceFragment.kt
@@ -117,7 +117,7 @@ } rl_check_1.clickDelay { if (playing) if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) return@clickDelay if (rl_check_2.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE){ dot_1.visible() @@ -143,7 +143,7 @@ } rl_check_2.clickDelay { if (playing) if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) return@clickDelay if (rl_check_1.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE) { dot_2.visible() @@ -170,7 +170,7 @@ } rl_check_3.clickDelay { if (playing) if (playing||data!!.subjectList[group].filter { it.completed }.size == data!!.subjectList[group].size) return@clickDelay if (rl_check_2.visibility == View.VISIBLE&&rl_check_3.visibility == View.VISIBLE) { dot_3.visible() @@ -441,4 +441,8 @@ player.stopPlayMusic() } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) } } app/src/main/java/com/dollearn/student/ui/home/IncludeFragment.kt
@@ -18,6 +18,7 @@ import com.dollearn.student.utils.Const import com.dollearn.student.utils.extention.clickDelay import kotlinx.android.synthetic.main.fragment_include.* import org.jetbrains.anko.support.v4.dip import org.jetbrains.anko.support.v4.startActivity class IncludeFragment : BaseFragment(), AudioUtils.OnAudioStatusUpdateListener { @@ -63,6 +64,7 @@ super.handleMessage(msg) when(msg.what){ PLAY_VOICE->{ playing = true player.startPlayMusic(requireContext(),data!!.subjectList[group][voiceIndex].correct) } TO_NEXT->{ @@ -71,10 +73,12 @@ } } PLAY_RIGHT->{ playing = true rightPlaying = true player.startPlayMusic(requireContext(),rightVoice) } PLAY_ERROR->{ playing = true errorPlaying = true player.startPlayMusic(requireContext(),errorVoice) } @@ -120,13 +124,14 @@ } cl_answer_1.clickDelay { if (currentImage == 0) if (currentImage == 0||!data!!.subjectList[group][currentImage].listend) return@clickDelay val subject = data!!.subjectList[group][currentImage] if (!subject.listend||subject.completed){ return@clickDelay } act.totalCount++ data!!.subjectList[group][currentImage].listend = false if (answerImg[0] == subject.img){ nowVoiceView = voiceViews[currentImage] act.rightCount++ @@ -143,7 +148,7 @@ } cl_answer_2.clickDelay { if (currentImage == 0) if (currentImage == 0||!data!!.subjectList[group][currentImage].listend) return@clickDelay val subject = data!!.subjectList[group][currentImage] if (!subject.listend||subject.completed){ @@ -151,6 +156,7 @@ } act.totalCount++ data!!.subjectList[group][currentImage].listend = false if (answerImg[1] == subject.img){ nowVoiceView = voiceViews[currentImage] act.rightCount++ @@ -167,7 +173,7 @@ } cl_answer_3.clickDelay { if (currentImage == 0) if (currentImage == 0||!data!!.subjectList[group][currentImage].listend) return@clickDelay val subject = data!!.subjectList[group][currentImage] if (!subject.listend||subject.completed){ @@ -175,6 +181,7 @@ } act.totalCount++ data!!.subjectList[group][currentImage].listend = false if (answerImg[2] == subject.img){ nowVoiceView = voiceViews[currentImage] act.rightCount++ @@ -417,7 +424,6 @@ override fun onFinishPlay() { playing = false val subject = data!!.subjectList[group][voiceIndex] subject.listend = true when(voiceIndex){ 0->{ iv1_1.visible() @@ -470,19 +476,24 @@ } } } showVoiceEnable() if (errorPlaying) errorPlaying = false if (rightPlaying) { else if (rightPlaying) { rightPlaying = false data!!.subjectList[group][currentImage].completed = true nowVoiceView?.callOnClick() } }else subject.listend = true showVoiceEnable() } override fun onPause() { super.onPause() player.stopPlayMusic() } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) } } app/src/main/java/com/dollearn/student/ui/home/ListenFragment.kt
@@ -225,4 +225,9 @@ super.onPause() player.stopPlayMusic() } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) } } app/src/main/java/com/dollearn/student/ui/home/MatchFragment.kt
@@ -644,4 +644,9 @@ super.onPause() player.stopPlayMusic() } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) } } app/src/main/java/com/dollearn/student/ui/home/MemoryActivity.kt
@@ -1,10 +1,13 @@ package com.dollearn.student.ui.home import android.os.Handler import android.util.Log import androidx.core.os.bundleOf import androidx.recyclerview.widget.GridLayoutManager import cn.sinata.xldutils.gone import cn.sinata.xldutils.utils.SPUtils import cn.sinata.xldutils.utils.showAllowingStateLoss import cn.sinata.xldutils.visible import com.dollearn.student.R import com.dollearn.student.dialog.TipDialog import com.dollearn.student.network.HttpManager @@ -17,7 +20,13 @@ import com.dollearn.student.utils.Const import com.dollearn.student.utils.event.EmptyEvent import kotlinx.android.synthetic.main.activity_memory.* import kotlinx.android.synthetic.main.item_card.view.* import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.imageResource import kotlin.math.abs import kotlin.math.max import kotlin.math.min import kotlin.math.sqrt class MemoryActivity : TransparentStatusBarActivity(), AudioUtils.OnAudioStatusUpdateListener { override fun setContentView() = R.layout.activity_memory @@ -27,17 +36,18 @@ } private val list = arrayListOf<Card>() private val adapter = CardAdapter(list) val TAG = "Memory====>" private var lastTime = 600 //剩余秒 private var totalCount = 0 private var rightCount = 0 private var handler: Handler? = null var handler: Handler? = null var time = 0 //学习秒数 private val PLAY_VOICE = 1 val PLAY_VOICE = 1 private val STUDY_TIME = 2 val PLAY_RIGHT = 4 @@ -51,7 +61,7 @@ private val player by lazy { AudioUtils() } private var index = 0 var index = 0 var playing = false @@ -97,13 +107,17 @@ sendEmptyMessageDelayed(STUDY_TIME,1000) } PLAY_VOICE->{ playing = true player.startPlayMusic(this@MemoryActivity,list[index].url) rv_list.getChildAt(index).iv_play.setImageResource(R.mipmap.playing_blue) } PLAY_RIGHT->{ playing = true rightPlaying = true player.startPlayMusic(this@MemoryActivity,rightVoice) } PLAY_ERROR->{ playing = true errorPlaying = true player.startPlayMusic(this@MemoryActivity,errorVoice) } @@ -114,11 +128,41 @@ lastTime = data.data.answerTime //倒计时时间 tv_timer.text = "${lastTime}S" handler?.sendEmptyMessageDelayed(STUDY_TIME,1000) rv_list.layoutManager = GridLayoutManager(this,5) rv_list.adapter = adapter list.addAll(data.photoList.map { Card(it.id,1,it.photo) }) list.addAll(data.voiceList.map { Card(it.id,2,it.voice) }) list.shuffle() rv_list.postDelayed({ initRecycler(list.size) },500) } /** * 需要计算行列数 */ private fun initRecycler(total: Int){ var bestRows = 1 var bestColumns: Int = total var i = 1 while (i <= sqrt(total.toDouble())) { val rows = i val columns: Int = if (total%i>0) (total / i)+1 else total / i // Calculate the absolute difference between rows and columns val diff = abs(rows - columns) // Update the best rows and columns if this pair has a smaller difference if (diff < abs(bestRows - bestColumns)) { bestRows = rows bestColumns = columns } i++ } Log.e(TAG,"总数:$total,计算得到行数:${min(bestColumns,bestRows)},列数:${max(bestColumns,bestRows)}") val lineHeight = rv_list.height.toDouble() / min(bestColumns, bestRows) val lineWidth = rv_list.width.toDouble() / max(bestColumns, bestRows) Log.e(TAG,"高度:${rv_list.height},计算得到行高:${lineHeight},宽度:${rv_list.width},计算得到行宽:${lineWidth}") rv_list.layoutManager = GridLayoutManager(this, max(bestColumns,bestRows)) adapter.height = lineHeight.toInt() adapter.widgh = lineWidth.toInt() adapter.notifyDataSetChanged() } @@ -143,6 +187,20 @@ if (card1.type!=card2.type&&card1.id == card2.id){//匹配成功 handler?.sendEmptyMessage(PLAY_RIGHT) rightCount++ rv_list.getChildAt(adapter.position1).iv_result?.apply { imageResource = R.mipmap.successs visible() postDelayed({ gone() },3000) } rv_list.getChildAt(adapter.position2).iv_result?.apply { imageResource = R.mipmap.successs visible() postDelayed({ gone() },3000) } tv_timer.postDelayed({ if (list.filter { !it.isBack }.size == list.size){ //全部答对 tv_exit.text = "提交" @@ -151,6 +209,20 @@ },500) }else{ handler?.sendEmptyMessage(PLAY_ERROR) rv_list.getChildAt(adapter.position1).iv_result?.apply { imageResource = R.mipmap.zhifushibai visible() postDelayed({ gone() },3000) } rv_list.getChildAt(adapter.position2).iv_result?.apply { imageResource = R.mipmap.zhifushibai visible() postDelayed({ gone() },3000) } } } } @@ -189,8 +261,10 @@ playing = false if (errorPlaying){ errorPlaying = false playing = true tv_timer.postDelayed({ adapter.bothToBack() playing = false //防止翻转过程中点击,造成缓存view被销毁 },500) }else if (rightPlaying){ rightPlaying = false @@ -202,6 +276,7 @@ adapter.releaseHolder() handler?.sendEmptyMessage(PLAY_VOICE) }else{ rv_list.getChildAt(index).iv_play.setImageResource(R.mipmap.play_blue) checkResult() } } app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt
@@ -57,7 +57,6 @@ private val voiceViews by lazy { arrayListOf(cl_voice_1,cl_voice_2,cl_voice_3,cl_voice_4) } //语音蓝条 private val v1Views by lazy { arrayListOf(iv1_1,iv1_2,iv1_3,iv1_4,iv1_answer_1,iv1_answer_2,iv1_answer_3) } private val v2Views by lazy { arrayListOf(iv2_1,iv2_2,iv2_3,iv2_4,iv2_answer_1,iv2_answer_2,iv2_answer_3) } private val v3Views by lazy { arrayListOf(iv3_1,iv3_2,iv3_3,iv3_4) } private val resultViews by lazy { arrayListOf(iv_right_1,iv_right_2,iv_right_3,iv_right_4) } private val playingViews by lazy { arrayListOf(iv_playing_1,iv_playing_2,iv_playing_3,iv_playing_4,iv_playing_answer_1,iv_playing_answer_2,iv_playing_answer_3) } @@ -408,4 +407,9 @@ super.onPause() player.stopPlayMusic() } override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) } } app/src/main/java/com/dollearn/student/ui/home/RememberFinishActivity.kt
@@ -1,13 +1,11 @@ package com.dollearn.student.ui.home import com.dollearn.student.MainActivity import com.dollearn.student.R import com.dollearn.student.network.HttpManager import com.dollearn.student.network.request import com.dollearn.student.ui.TransparentStatusBarActivity import kotlinx.android.synthetic.main.activity_finish_remember.* import kotlinx.android.synthetic.main.activity_finish_remember.tv_back import org.jetbrains.anko.startActivity class RememberFinishActivity:TransparentStatusBarActivity() { override fun setContentView() = R.layout.activity_finish_remember @@ -18,7 +16,7 @@ override fun initClick() { tv_back.setOnClickListener { startActivity<MainActivity>() finish() } } app/src/main/java/com/dollearn/student/ui/home/ResultActivity.kt
@@ -35,11 +35,11 @@ override fun initClick() { tv_last.setOnClickListener { startActivity<MainActivity>() finish() } tv_back.setOnClickListener { startActivity<MainActivity>() finish() } tv_exit.clickDelay { @@ -66,13 +66,20 @@ } } 7->{ title = "超级记忆" title = "自主游戏2-超级记忆" tv_score.text = "恭喜你,已完成游戏!获得${score}积分!" tv_back.visible() tv_last.invisible() tv_exit.invisible() tv_1.text = "总题目:" tv_2.text = "正确题目:" tv_3.text = "错误题目:" tv_count.text = "$total" tv_right.text = "$right" tv_fault.text = "${total-right}" HttpManager.gameAchievement(rate,difficulty,id?:"","超级记忆",time).request(this){_,data-> tv_score.text = "恭喜你,已完成全部答题!获得${data?:0}积分!" tv_score.text = "恭喜你,已完成游戏!获得${data?:0}积分!" } } 8->{ @@ -85,8 +92,14 @@ } } else->{ when(type){ 1-> title = "自主学习1-听音选图" 2-> title = "自主学习2-看图选音" 3-> title = "自主学习3-归纳排除" 4-> title = "自主学习4-有问有答" } if (type == 5){ title = "音图相配" title = "自主学习5-音图相配" tv_back.visible() tv_last.invisible() tv_exit.invisible() app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt
@@ -1,10 +1,17 @@ package com.dollearn.student.ui.home import android.R.attr.animation import android.R.attr.max import android.animation.Animator import android.animation.ObjectAnimator import android.animation.PropertyValuesHolder import android.animation.ValueAnimator import android.os.Handler import android.os.Looper import android.os.Message import android.util.Log import android.view.View import android.view.animation.LinearInterpolator import androidx.recyclerview.widget.GridLayoutManager import cn.sinata.xldutils.gone import cn.sinata.xldutils.utils.SPUtils @@ -23,8 +30,11 @@ import com.dollearn.student.utils.event.EmptyEvent import com.dollearn.student.utils.interfaces.StringCallback import kotlinx.android.synthetic.main.activity_super_listen.* import kotlinx.android.synthetic.main.fragment_q_a.* import kotlinx.android.synthetic.main.fragmetn_look_img.* import kotlinx.android.synthetic.main.item_game_1.view.* import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.dip import kotlin.math.abs import kotlin.math.max import kotlin.math.min @@ -34,6 +44,9 @@ class SuperListenActivity : TransparentStatusBarActivity(), AudioUtils.OnAudioStatusUpdateListener { override fun setContentView() = R.layout.activity_super_listen val level by lazy { //0就只能点入门,1就是入门和中级都能点,2就是入门、中级高级三个难度都可以点 intent.getIntExtra("level", 0) } private val week by lazy { intent.getIntExtra("week", 0) } @@ -48,7 +61,7 @@ val TAG = "Listen====>" val list = arrayListOf<Subject>() var list = arrayListOf<Subject>() private val adapter = GameAdapter(list) val PLAY_VOICE = 1 @@ -78,6 +91,9 @@ var state = 0 //0:准备听题 1:听题中 2:请作答 3:结束答题 var showFullImage = false var paused = false override fun initClick() { tv_exit.setOnClickListener { if (tv_exit.text == "提交"){ @@ -97,6 +113,12 @@ finish() }else onBackPressed() } cl_voice.setOnClickListener { if (!playing){ handler?.sendEmptyMessage(PLAY_VOICE) } } } @@ -132,8 +154,10 @@ sendEmptyMessageDelayed(STUDY_TIME, 1000) } PLAY_VOICE -> { if (index < voiceList.size) if (!paused&&!playing&&index < voiceList.size) { playing = true player.startPlayMusic(this@SuperListenActivity, voiceList[index]) } } COUNT_DOWN -> { if (!playing) { @@ -143,16 +167,18 @@ tv_tip.text = "请在${countTime}s内选择答案!" if (countTime == 0) { index++ startGame() startGame(true) } else { sendEmptyMessageDelayed(COUNT_DOWN, 1000) } } PLAY_RIGHT -> { playing = true rightPlaying = true player.startPlayMusic(this@SuperListenActivity, rightVoice) } PLAY_ERROR -> { playing = true errorPlaying = true player.startPlayMusic(this@SuperListenActivity, errorVoice) } @@ -181,7 +207,7 @@ countdownDialog.callback = object :StringCallback{ override fun onResult(rst: String) { index = 0 startGame() startGame(true) } } countdownDialog.show(supportFragmentManager, "timer") @@ -206,15 +232,19 @@ } i++ } Log.e(TAG,"总数:$total,计算得到行数:${min(bestColumns,bestRows)},列数:${max(bestColumns,bestRows)}") Log.e(TAG, "总数:$total,计算得到行数:${min(bestColumns, bestRows)},列数:${max(bestColumns, bestRows)}") val lineHeight = rv_list.height.toDouble() / min(bestColumns, bestRows) Log.e(TAG,"高度:${rv_list.height},计算得到行高:${lineHeight}") rv_list.layoutManager = GridLayoutManager(this, max(bestColumns,bestRows)) Log.e(TAG, "高度:${rv_list.height},计算得到行高:${lineHeight}") rv_list.layoutManager = GridLayoutManager(this, max(bestColumns, bestRows)) adapter.height = lineHeight.toInt() adapter.notifyDataSetChanged() } fun startGame() { /** * 切题 * @param playNow true:表示立即播放下一题 false:3秒后播放下一题 */ fun startGame(playNow: Boolean = false) { if (index < voiceList.size){ Log.e(TAG, "开始答题:index=${index}") tv_sort.text = (index+1).toString() @@ -222,9 +252,10 @@ countTime = TIME //重置答题时间 tv_tip.text = "准备听题" state = 0 handler?.sendEmptyMessageDelayed(PLAY_VOICE, if (index == 0) 200 else 3000) handler?.sendEmptyMessageDelayed(PLAY_VOICE, if (playNow) 200 else 3000) }else{ tv_sort.visibility = View.INVISIBLE cl_voice.visibility = View.INVISIBLE tv_tip.text = "" state = 3 tv_end.text = "已完成全部问题" @@ -232,6 +263,56 @@ handler?.removeMessages(STUDY_TIME) } } fun transAnimation(endView: View){ val offx = getScreenX(endView) - getScreenX(cl_voice) val offy = getScreenY(endView) - getScreenY(cl_voice) val x = PropertyValuesHolder.ofFloat("translationX", 0f, offx.toFloat()) val y = PropertyValuesHolder.ofFloat("translationY", 0f, offy.toFloat()) val animator = ObjectAnimator.ofPropertyValuesHolder(cl_voice, x, y) animator.duration = 500 animator.interpolator = LinearInterpolator() val withAnim = ValueAnimator.ofInt(cl_voice.width, endView.width).setDuration(500) //会影响结束坐标 withAnim.addUpdateListener { cl_voice.layoutParams.width = it.animatedValue as Int cl_voice.requestLayout() } val heightAnim = ValueAnimator.ofInt(cl_voice.height, endView.height).setDuration(500) heightAnim.addUpdateListener { cl_voice.layoutParams.height = it.animatedValue as Int cl_voice.requestLayout() } withAnim.start() heightAnim.start() animator.start() animator.addListener(object : Animator.AnimatorListener { override fun onAnimationStart(animation: Animator?) { } override fun onAnimationEnd(animation: Animator?) { endView.visible() } override fun onAnimationCancel(animation: Animator?) { } override fun onAnimationRepeat(animation: Animator?) { } }) } private fun getScreenY(v: View):Int{ val xy = IntArray(2) v.getLocationOnScreen(xy) return xy[1] } private fun getScreenX(v: View):Int{ val xy = IntArray(2) v.getLocationOnScreen(xy) return xy[0] } override fun onUpdate(db: Double, time: Long) { } @@ -243,7 +324,8 @@ playing = true if (errorPlaying||rightPlaying) return if (!data!!.subjectList[data!!.subjectList.map { it.correct }.indexOf(voiceList[index])].completed){//首次播放 // if (!data!!.subjectList[data!!.subjectList.map { it.correct }.indexOf(voiceList[index])].completed){//首次播放 if (handler?.hasMessages(COUNT_DOWN) == false){//首次播放 state = 1 tv_tip.text = "请在${countTime}s内选择答案!" handler?.sendEmptyMessageDelayed(COUNT_DOWN, 1000) @@ -258,18 +340,24 @@ iv1.visible() iv2.visible() iv_playing.gone() if (data!!.subjectList[data!!.subjectList.map { it.correct }.indexOf(voiceList[index])].completed){ //当前题目已作答,3秒后进入下一题 if (data!!.subjectList[data!!.subjectList.map { it.correct }.indexOf(voiceList[min(index,voiceList.lastIndex)])].completed){ //当前题目已作答,3秒后进入下一题 index++ startGame() } if (errorPlaying) errorPlaying = false if (rightPlaying){ else if (rightPlaying){ rightPlaying = false val subject = data!!.subjectList[data!!.subjectList.map { it.correct } .indexOf(voiceList[index])] //当前音频对应题目 subject.completed = true handler?.sendEmptyMessage(PLAY_VOICE) }else{ cl_voice.translationX = 0f cl_voice.translationY = 0f cl_voice.layoutParams.width = dip(159) cl_voice.layoutParams.height = dip(52) cl_voice.requestLayout() } } @@ -285,8 +373,20 @@ EventBus.getDefault().post(EmptyEvent(Const.EventCode.STOP_TIMER)) } override fun onResume() { super.onResume() if (paused){ paused = false handler?.sendEmptyMessageDelayed(PLAY_VOICE, 200) } } override fun onPause() { super.onPause() player.stopPlayMusic() if (!showFullImage){ player.stopPlayMusic() paused = true } showFullImage = false } } app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt
@@ -1,8 +1,11 @@ package com.dollearn.student.ui.home import androidx.core.os.bundleOf import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import cn.sinata.xldutils.utils.showAllowingStateLoss import com.dollearn.student.R import com.dollearn.student.dialog.TipDialog import com.dollearn.student.network.HttpManager import com.dollearn.student.network.entity.Week import com.dollearn.student.network.request @@ -28,7 +31,13 @@ } weekAdapter.setOnItemClickListener { view, position -> startActivity<ScheduleActivity>("week" to weeks[position].week,"season" to seasonAdapter.checked+1) if (weeks[position].canStudy) startActivity<ScheduleActivity>("week" to weeks[position].week,"season" to seasonAdapter.checked+1) else{ val tipDialog = TipDialog() tipDialog.arguments = bundleOf("msg" to "请先完成上一周练习","isAlert" to true) tipDialog.showAllowingStateLoss(supportFragmentManager,"noStart") } } } @@ -38,7 +47,6 @@ rv_week.layoutManager = GridLayoutManager(this,3) rv_week.adapter = weekAdapter getWeeks() } private fun getWeeks(){ @@ -49,4 +57,9 @@ weekAdapter.notifyDataSetChanged() } } override fun onResume() { super.onResume() getWeeks() } } app/src/main/java/com/dollearn/student/ui/home/WeekendFragment.kt
@@ -33,7 +33,6 @@ HttpManager.lookPictureDbu(season, week).requestByF(this){_,data-> startActivity<LookImgActivity>("data" to data,"week" to week,"season" to season) EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_TIMER)) } } cl_2.setOnClickListener { @@ -47,9 +46,10 @@ } if (day == 6){ cl_1.setOnClickListener { startActivity<SuperListenActivity>("week" to week,"season" to season) EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_TIMER)) HttpManager.userGameDifficulty(week).requestByF(this){_,data-> startActivity<SuperListenActivity>("week" to week,"season" to season,"level" to (data?:0)) EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_TIMER)) } } cl_2.setOnClickListener { showDialog("加载题目...") app/src/main/java/com/dollearn/student/ui/home/adapter/CardAdapter.kt
@@ -1,6 +1,8 @@ package com.dollearn.student.ui.home.adapter import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import cn.sinata.xldutils.activity.ImagePagerActivity import cn.sinata.xldutils.adapter.HFRecyclerAdapter import cn.sinata.xldutils.adapter.util.ViewHolder import cn.sinata.xldutils.gone @@ -12,20 +14,24 @@ import com.dollearn.student.utils.extention.clickDelay import com.facebook.drawee.view.SimpleDraweeView import kotlinx.android.synthetic.main.fragment_q_a.* import org.jetbrains.anko.dip import org.jetbrains.anko.startActivity import java.util.ArrayList class CardAdapter(list: ArrayList<Card>):HFRecyclerAdapter<Card>(list, R.layout.item_card) { private val act by lazy { context as MemoryActivity } var height:Int = 200 //行高 var widgh:Int = 300 //行宽 //第一次翻开的 var position1 = -1 private var p1View:View? = null var p1View:View? = null private var f1View:View? = null private var b1View:View? = null //第2次翻开的 var position2 = -1 private var p2View:View? = null var p2View:View? = null private var f2View:View? = null private var b2View:View? = null @@ -35,7 +41,15 @@ val front = holder.bind<View>(R.id.front) val rlVoice = holder.bind<View>(R.id.rl_voice) val ivImg = holder.bind<SimpleDraweeView>(R.id.iv_img) val iv_play = holder.bind<View>(R.id.iv_play) val layoutParams = frame.layoutParams as ConstraintLayout.LayoutParams layoutParams.height = height - act.dip(12) layoutParams.width = height*3/2 if (layoutParams.width > widgh){ layoutParams.width = widgh - act.dip(10) layoutParams.height = (widgh- act.dip(10))*2/3 } frame.layoutParams = layoutParams if(data.type == 1){ rlVoice.gone() ivImg.visible() @@ -44,9 +58,14 @@ rlVoice.visible() ivImg.gone() } iv_play.clickDelay { if (!act.playing&&position2 == -1){ act.index = position act.handler?.sendEmptyMessage(act.PLAY_VOICE) } } frame.clickDelay { if(data.isBack){ if(!act.playing&&data.isBack){ if(position1 == -1) position1 = position else if(position2 == -1) app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt
@@ -5,6 +5,7 @@ import android.widget.ImageView import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.widget.ConstraintLayout import cn.sinata.xldutils.activity.ImagePagerActivity import cn.sinata.xldutils.adapter.HFRecyclerAdapter import cn.sinata.xldutils.adapter.util.ViewHolder import com.dollearn.student.R @@ -18,6 +19,7 @@ import kotlinx.android.synthetic.main.fragment_listen.* import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.dip import org.jetbrains.anko.startActivity import java.util.ArrayList class GameAdapter(list: ArrayList<Subject>):HFRecyclerAdapter<Subject>(list, R.layout.item_game_1) { @@ -26,10 +28,15 @@ val act = context as SuperListenActivity holder.bind<SimpleDraweeView>(R.id.iv_img).setImageURI(data.img) val view = holder.bind<View>(R.id.cl_voice_end_1) val iv_full = holder.bind<View>(R.id.iv_full) iv_full.setOnClickListener { act.showFullImage = true act.startActivity<ImagePagerActivity>("url" to arrayListOf(data.img)) } val motion = holder.bind<MotionLayout>(R.id.motion) motion.progress = 0f val ivResult = holder.bind<ImageView>(R.id.result_1) view.visibility = if (data.right) View.VISIBLE else View.GONE view.visibility = if (data.right) View.VISIBLE else View.INVISIBLE view.clickDelay { // (context as SuperListenActivity) } @@ -54,7 +61,7 @@ act.handler?.sendEmptyMessage(act.PLAY_RIGHT) act.rightCount++ subject.right = true notifyItemChanged(position) act.transAnimation(view) }else{ act.handler?.sendEmptyMessage(act.PLAY_ERROR) //选择答案后,停止倒计时 ivResult.setImageResource(R.mipmap.zhifushibai) app/src/main/java/com/dollearn/student/ui/mine/MineFragment.kt
@@ -72,7 +72,7 @@ shareDialog.callback = object :StringCallback{ override fun onResult(rst: String) { HttpManager.shareInfo().requestByF(this@MineFragment){_,data-> ShareUtils.share(requireActivity(),if (rst == "wx") SHARE_MEDIA.WEIXIN else SHARE_MEDIA.WEIXIN_CIRCLE,data?.title?:"孩子自己就学会的英语",if (rst == "wx") "海豚英语智能教育平台" else data?.title?:"孩子自己就学会的英语", Apis.SHARE_URL, ShareUtils.share(requireActivity(),if (rst == "wx") SHARE_MEDIA.WEIXIN else SHARE_MEDIA.WEIXIN_CIRCLE,data?.title?:"孩子自己就学会的英语",if (rst == "wx") "哆能智学智能教育平台" else data?.title?:"孩子自己就学会的英语", Apis.SHARE_URL, UMImage(requireContext(),data?.img?:""),object :UMShareListener{ override fun onStart(p0: SHARE_MEDIA?) { } app/src/main/java/com/dollearn/student/ui/mine/adapter/GameRecordAdapter.kt
@@ -11,7 +11,7 @@ class GameRecordAdapter(list: ArrayList<GameRecord>) :HFRecyclerAdapter<GameRecord>(list, R.layout.item_game_record){ override fun onBind(holder: ViewHolder, position: Int, data: GameRecord) { holder.setText(R.id.tv_time,data.createTime) holder.setText(R.id.tv_time,data.time) holder.setText(R.id.tv_name,data.gameName) holder.setText(R.id.tv_duration,formatDuration(data.useTime)) holder.setText(R.id.tv_rate,data.accuracy+"%") app/src/main/java/com/dollearn/student/ui/mine/adapter/ImageAdapter.kt
File was deleted app/src/main/java/com/dollearn/student/views/NoScrollRecyclerView.java
New file @@ -0,0 +1,69 @@ package com.dollearn.student.views; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; public class NoScrollRecyclerView extends RecyclerView { private boolean isScroll = false; public NoScrollRecyclerView(Context context, AttributeSet attrs) { super(context, attrs); } public NoScrollRecyclerView(Context context) { super(context); } /** * 1.dispatchTouchEvent一般情况不做处理 * ,如果修改了默认的返回值,子孩子都无法收到事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { return super.dispatchTouchEvent(ev); // return true;不行 } /** * 是否拦截 * 拦截:会走到自己的onTouchEvent方法里面来 * 不拦截:事件传递给子孩子 */ @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // return false;//可行,不拦截事件, // return true;//不行,孩子无法处理事件 //return super.onInterceptTouchEvent(ev);//不行,会有细微移动 if (isScroll) { return super.onInterceptTouchEvent(ev); } else { return false; } } /** * 是否消费事件 * 消费:事件就结束 * 不消费:往父控件传 */ @Override public boolean onTouchEvent(MotionEvent ev) { //return false;// 可行,不消费,传给父控件 //return true;// 可行,消费,拦截事件 //super.onTouchEvent(ev); //不行, //虽然onInterceptTouchEvent中拦截了, //但是如果viewpage里面子控件不是viewgroup,还是会调用这个方法. if (isScroll) { return super.onTouchEvent(ev); } else { return true;// 可行,消费,拦截事件 } } public void setScroll(boolean scroll) { isScroll = scroll; } } app/src/main/res/drawable/selector_select_radio.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@mipmap/icon_selected"/> <item android:state_selected="false" android:drawable="@mipmap/icon_radiobutton"/> </selector> app/src/main/res/layout/activity_learn_record.xml
@@ -119,7 +119,7 @@ app:layout_constraintTop_toBottomOf="@id/cl_top" android:layout_marginTop="9dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="70dp"> android:layout_marginBottom="50dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" app/src/main/res/layout/activity_login.xml
@@ -7,10 +7,10 @@ <ImageView android:id="@+id/iv_bg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_width="296dp" android:layout_height="129dp" android:layout_marginTop="34dp" android:scaleType="centerCrop" android:scaleType="centerInside" android:src="@mipmap/logo" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app/src/main/res/layout/activity_result.xml
@@ -59,7 +59,7 @@ app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="12dp" android:textStyle="bold" /> <ScrollView <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginHorizontal="230dp" @@ -68,9 +68,7 @@ android:background="@drawable/bg_white_8dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/tv_last"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_score" android:layout_width="wrap_content" @@ -96,6 +94,7 @@ android:textColor="@color/textColor" android:textSize="16sp"/> <TextView android:id="@+id/tv_1" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBaseline_toBaselineOf="@id/tv_count" @@ -114,6 +113,7 @@ android:textColor="@color/textColor" android:textSize="16sp"/> <TextView android:id="@+id/tv_2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBaseline_toBaselineOf="@id/tv_right" @@ -132,6 +132,7 @@ android:textColor="@color/textColor" android:textSize="16sp"/> <TextView android:id="@+id/tv_3" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBaseline_toBaselineOf="@id/tv_fault" @@ -148,12 +149,10 @@ app:layout_constraintTop_toBottomOf="@id/tv_fault" android:textSize="24sp" android:textStyle="bold" app:layout_constraintVertical_bias="0.3" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="10dp" android:textColor="@color/color_text_price" android:layout_marginTop="50dp" android:text="正确率:0%"/> </androidx.constraintlayout.widget.ConstraintLayout> </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/activity_schedul.xml
@@ -120,6 +120,7 @@ android:background="@color/white" app:tl_indicator_corner_radius="3dp" app:tl_indicator_color="@color/colorPrimary" app:tl_indicator_margin_bottom="7dp" app:tl_tab_space_equal="true" app:tl_textsize="18sp" app:tl_textSelectColor="@color/colorPrimary" app/src/main/res/layout/activity_start_world_cup.xml
File was deleted app/src/main/res/layout/activity_super_listen.xml
@@ -4,9 +4,45 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:layoutDescription="@xml/activity_memory_scene"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_bottom" android:layout_width="match_parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_exit" android:layout_width="124dp" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="@color/white" android:background="@drawable/bg_blue_4dp" android:text="退出" android:paddingVertical="10dp" app:layout_goneMarginStart="0dp" android:visibility="invisible" android:gravity="center" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="25dp" android:textStyle="bold" /> </androidx.constraintlayout.widget.ConstraintLayout> <com.dollearn.student.views.NoScrollRecyclerView android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/rv_list" android:layout_marginHorizontal="30dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/cl_bottom" android:layout_marginTop="100dp"/> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="match_parent" android:id="@+id/cl_top"> <TextView android:layout_width="32dp" @@ -28,8 +64,8 @@ android:layout_width="159dp" android:layout_height="52dp" app:layout_constraintStart_toEndOf="@id/tv_sort" app:layout_constraintTop_toTopOf="@id/tv_sort" app:layout_constraintBottom_toBottomOf="@id/tv_sort" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="29dp" android:layout_marginStart="12dp" android:elevation="2dp" android:id="@+id/cl_voice" @@ -78,51 +114,16 @@ android:textSize="14sp" android:textStyle="bold" android:text=""/> </androidx.constraintlayout.widget.ConstraintLayout> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBaseline_toBaselineOf="@id/tv_sort" android:textColor="@color/colorRed" android:id="@+id/tv_end" android:gravity="center" android:textSize="16sp" android:textStyle="bold" android:text=""/> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/cl_bottom" android:layout_width="match_parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_exit" android:layout_width="124dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14sp" android:textColor="@color/white" android:background="@drawable/bg_blue_4dp" android:text="退出" android:paddingVertical="10dp" app:layout_goneMarginStart="0dp" android:visibility="invisible" app:layout_constraintBaseline_toBaselineOf="@id/tv_sort" android:textColor="@color/colorRed" android:id="@+id/tv_end" android:gravity="center" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="25dp" android:textStyle="bold" /> android:textSize="16sp" android:textStyle="bold" android:text=""/> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/rv_list" android:layout_marginHorizontal="30dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/cl_bottom" android:layout_marginTop="100dp"/> </androidx.constraintlayout.motion.widget.MotionLayout> app/src/main/res/layout/activity_tab_list.xml
File was deleted app/src/main/res/layout/dialog_diff.xml
@@ -42,7 +42,7 @@ android:textSize="16sp" app:layout_constraintTop_toBottomOf="@id/tv_title" /> <RadioGroup <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" @@ -53,33 +53,35 @@ android:layout_marginEnd="35dp" android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent"> <RadioButton <TextView android:id="@+id/rb_0" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textColor="@color/textColor66" android:singleLine="true" android:checked="true" android:button="@drawable/selector_check_radio" android:paddingVertical="8dp" android:drawableStart="@drawable/selector_select_radio" android:text="入门级"/> <RadioButton <TextView android:id="@+id/rb_1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@drawable/selector_check_radio" android:paddingVertical="8dp" android:drawableStart="@drawable/selector_select_radio" android:textColor="@color/textColor66" android:text="中级"/> <RadioButton <TextView android:id="@+id/rb_2" android:layout_width="0dp" android:layout_height="wrap_content" android:button="@drawable/selector_check_radio" android:paddingVertical="8dp" android:drawableStart="@drawable/selector_select_radio" android:textColor="@color/textColor66" android:layout_weight="1" android:text="高级"/> </RadioGroup> </LinearLayout> <TextView android:id="@+id/tv_cancel" app/src/main/res/layout/dialog_rule.xml
@@ -26,7 +26,7 @@ android:layout_marginStart="26dp" android:layout_marginTop="20dp" android:layout_marginEnd="26dp" android:text="尊敬的用户,为了向您提供更优质的服务,在您使用海豚英语App前,需要通过点击“同意”表示您已阅读并同意相关协议的各项规则。" android:text="尊敬的用户,为了向您提供更优质的服务,在您使用哆能智学App前,需要通过点击“同意”表示您已阅读并同意相关协议的各项规则。" android:textColor="@color/textColor" android:textSize="14sp" app:layout_constraintTop_toBottomOf="@id/tv_title" /> app/src/main/res/layout/fragment_home.xml
@@ -37,7 +37,7 @@ android:id="@+id/tv_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="欢迎使用海豚英语!" android:text="欢迎使用哆能智学!" android:textColor="@color/white" android:textStyle="bold" android:textSize="25sp" @@ -49,7 +49,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="海豚英语学习体系" android:text="孩子自己就能学好的\n英语课程体系" android:textColor="@color/white" android:textSize="20sp" android:alpha="0.8" app/src/main/res/layout/fragment_include.xml
@@ -12,13 +12,13 @@ android:layout_height="0dp" android:padding="4dp" android:elevation="2dp" android:layout_marginTop="20dp" android:layout_marginTop="14dp" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintVertical_chainStyle="packed" android:background="@drawable/bg_white_8dp" app:layout_constraintTop_toBottomOf="@id/cl_voice1" app:layout_constraintBottom_toTopOf="@id/cl_4" android:layout_marginBottom="140dp" android:layout_marginBottom="130dp" app:layout_constraintDimensionRatio="3:2" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/cl_2" @@ -82,7 +82,7 @@ android:layout_height="0dp" android:padding="4dp" android:elevation="2dp" android:layout_marginBottom="10dp" android:layout_marginBottom="5dp" app:layout_constraintTop_toBottomOf="@id/cl_1" android:background="@drawable/bg_white_8dp" app:layout_constraintBottom_toBottomOf="parent" @@ -143,18 +143,22 @@ </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_1" app:layout_constraintEnd_toEndOf="@id/cl_1" app:layout_constraintDimensionRatio="3:1" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="24dp" android:layout_marginTop="15dp" android:id="@+id/cl_voice1" android:layout_marginStart="4dp" android:layout_marginEnd="40dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -163,7 +167,8 @@ <ImageView android:id="@+id/iv2_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -181,18 +186,21 @@ app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_2" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="24dp" app:layout_constraintEnd_toEndOf="@id/cl_2" app:layout_constraintDimensionRatio="3:1" app:layout_constraintTop_toTopOf="@id/cl_voice1" android:id="@+id/cl_voice2" android:layout_marginStart="4dp" android:layout_marginEnd="40dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -201,7 +209,8 @@ <ImageView android:id="@+id/iv2_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -219,18 +228,21 @@ app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_3" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="24dp" app:layout_constraintEnd_toEndOf="@id/cl_3" app:layout_constraintDimensionRatio="3:1" app:layout_constraintTop_toTopOf="@id/cl_voice1" android:id="@+id/cl_voice3" android:layout_marginStart="4dp" android:layout_marginEnd="40dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -239,7 +251,8 @@ <ImageView android:id="@+id/iv2_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -257,18 +270,22 @@ app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_4" app:layout_constraintEnd_toEndOf="@id/cl_4" app:layout_constraintDimensionRatio="3:1" app:layout_constraintBottom_toTopOf="@id/cl_4" android:layout_marginBottom="20dp" android:layout_marginBottom="14dp" android:id="@+id/cl_voice4" android:layout_marginStart="4dp" android:layout_marginEnd="40dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -277,7 +294,8 @@ <ImageView android:id="@+id/iv2_4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -295,18 +313,21 @@ app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_5" app:layout_constraintBottom_toTopOf="@id/cl_5" android:layout_marginBottom="20dp" app:layout_constraintEnd_toEndOf="@id/cl_5" app:layout_constraintDimensionRatio="3:1" android:layout_marginEnd="40dp" app:layout_constraintTop_toTopOf="@id/cl_voice4" android:id="@+id/cl_voice5" android:layout_marginStart="4dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -315,7 +336,8 @@ <ImageView android:id="@+id/iv2_5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -333,18 +355,21 @@ app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/cl_6" app:layout_constraintBottom_toTopOf="@id/cl_6" android:layout_marginBottom="20dp" app:layout_constraintEnd_toEndOf="@id/cl_6" app:layout_constraintDimensionRatio="3:1" android:layout_marginEnd="40dp" app:layout_constraintTop_toTopOf="@id/cl_voice4" android:id="@+id/cl_voice6" android:layout_marginStart="4dp" android:background="@drawable/selector_bg_voice"> <ImageView android:id="@+id/iv1_6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -353,7 +378,8 @@ <ImageView android:id="@+id/iv2_6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_height="match_parent" android:layout_marginVertical="6dp" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -412,7 +438,7 @@ android:elevation="2dp" app:layout_constraintTop_toBottomOf="@id/cl_3" android:layout_marginEnd="23dp" android:layout_marginTop="8dp"> android:layout_marginTop="6dp"> <ImageView android:id="@+id/iv_error_3" android:layout_width="42dp" @@ -442,7 +468,7 @@ app:layout_constraintEnd_toStartOf="@id/cl_answer_3" app:layout_constraintTop_toBottomOf="@id/cl_3" android:layout_marginEnd="5dp" android:layout_marginTop="8dp"> android:layout_marginTop="6dp"> <ImageView android:id="@+id/iv_error_2" android:layout_width="42dp" @@ -472,7 +498,7 @@ app:layout_constraintEnd_toStartOf="@id/cl_answer_2" app:layout_constraintTop_toBottomOf="@id/cl_3" android:layout_marginEnd="5dp" android:layout_marginTop="8dp"> android:layout_marginTop="6dp"> <ImageView android:id="@+id/iv_error_1" android:layout_width="42dp" app/src/main/res/layout/item_card.xml
@@ -5,11 +5,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintDimensionRatio="3:2" android:layout_marginHorizontal="9dp" android:layout_marginVertical="8dp" android:layout_height="200dp" android:layout_width="300dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginHorizontal="5dp" android:layout_marginVertical="4dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent"> <androidx.constraintlayout.widget.ConstraintLayout @@ -21,41 +22,14 @@ android:layout_height="match_parent" android:background="@drawable/bg_blue_8dp" android:id="@+id/rl_voice"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="159dp" android:layout_height="52dp" android:id="@+id/cl_voice" <ImageView android:id="@+id/iv_play" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="6dp" android:layout_centerInParent="true" android:background="@drawable/bg_white_8dp"> <ImageView android:id="@+id/iv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/yuyin" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="25dp"/> <ImageView android:id="@+id/iv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/play" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="23dp"/> <ImageView android:id="@+id/iv_playing" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:src="@mipmap/bofangzhong" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> android:src="@mipmap/play_blue"/> </RelativeLayout> <com.facebook.drawee.view.SimpleDraweeView @@ -71,6 +45,19 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:src="@mipmap/bg_card_back" android:scaleType="fitXY" android:visibility="gone"/> </FrameLayout> <ImageView android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintStart_toStartOf="@id/frame" app:layout_constraintEnd_toEndOf="@id/frame" app:layout_constraintTop_toTopOf="@id/frame" app:layout_constraintBottom_toBottomOf="@id/frame" android:scaleType="centerInside" android:visibility="gone" android:id="@+id/iv_result" android:src="@mipmap/successs" android:layout_margin="6dp"/> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/item_game_1.xml
@@ -14,6 +14,13 @@ android:padding="4dp" android:background="@drawable/bg_white_8dp" app:layoutDescription="@xml/item_game_1_scene"> <View android:layout_width="match_parent" android:layout_height="1px" android:id="@+id/line_in" app:layout_constraintTop_toTopOf="@id/motion" app:layout_constraintVertical_bias="0.33" app:layout_constraintBottom_toBottomOf="@id/motion"/> <com.facebook.drawee.view.SimpleDraweeView android:layout_width="match_parent" android:layout_height="match_parent" @@ -62,7 +69,7 @@ android:layout_width="match_parent" android:id="@+id/cl_voice_end_1" android:background="@color/colorPrimary" android:visibility="gone" android:visibility="invisible" android:layout_height="match_parent"> <ImageView android:id="@+id/iv1_1_end" app/src/main/res/layout/item_img.xml
File was deleted app/src/main/res/layout/item_referee_world_cup.xml
File was deleted app/src/main/res/layout/layout_tab.xml
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <TextView android:id="@+id/tv_tab_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:fontFamily="@font/impact_regular" android:singleLine="true"/> <com.flyco.tablayout.widget.MsgView android:id="@+id/rtv_msg_tip" xmlns:mv="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textColor="#ffffff" android:textSize="11.5sp" android:visibility="gone" mv:mv_backgroundColor="#FD481F" mv:mv_isRadiusHalfHeight="true" mv:mv_strokeColor="#ffffff" mv:mv_strokeWidth="1dp"/> </RelativeLayout> app/src/main/res/mipmap-xxhdpi/ad.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ad_origin.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/add.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/add_head.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/add_stu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/add_user.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/arrow_yellow.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/banner_explore.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/baoming.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_competition_tip.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_end.9.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_top.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_vs.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_wc_title.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_world_cup.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bg_world_cup_1.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bianjisekuai.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bmi.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/book.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/book_selected.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bottom_shadow.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/bronzemedal.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/caipan.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/calender.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/canyucishu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/changshengjiangjun.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/circle_orange.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/cl_left_disable.9.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/cl_right_disable.9.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coin.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coin_small.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coupon_checked.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coupon_left.9.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coupon_right.9.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/coupon_uncheck.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/daohang.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/del.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/del_2.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/diet_2.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/dingbu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/dingchang.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/dingweiicon.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/duihuan.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/empty.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/empty_course.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/erweima.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/exchange.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/fabu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/filter_close.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/filter_open.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/fire.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/game_bg.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/game_description.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/game_top.jpgBinary files differ
app/src/main/res/mipmap-xxhdpi/gengduo.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/goldmedal.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/guanyu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/guiwei.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/huodong.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_add.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_address.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_cancel.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_couse_home.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_dial.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_heat.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_last.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_must.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_phone.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ic_vip.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_alipay.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_all.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_arrow.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_arrow_bootom.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_arrow_left.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_arrow_right.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_arrow_top.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_back.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_back_white.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_eye.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_eye_close.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_login_vx.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_me_evaluation.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_me_extension.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_me_history.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_me_item.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_more_grey.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_nav_close.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_nav_open.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_opinion.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_people.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_phone.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_play.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_search_gray.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_tab_home.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_tab_lib.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_tab_study.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_tab_user.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_time.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/icon_vx.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/iv_del_user.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/iv_disable.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/iv_phone.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/iv_used.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/jifen.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/kefu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/keshi.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/keshi1.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/keshishu.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/keshitagicon.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/loc.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/location_grey.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/logo.jpg
app/src/main/res/mipmap-xxhdpi/logo.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/map.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/marker_normal.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/medal_club.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/medal_play.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/medal_social.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/medal_sport.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/more_blue.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/more_medal.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/nan.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/nv.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/open_soon.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/pencil.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/phone.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/phone_pc.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/pingjia.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/place_holder_coupon.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/place_holder_free.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/place_holder_shop.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/place_holder_welfare.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/play_1.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/play_blue.png
app/src/main/res/mipmap-xxhdpi/play_red.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/playing_blue.png
app/src/main/res/mipmap-xxhdpi/pop_blue.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/quanbao.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/rectangle.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/ren.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/renyuan.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/reset.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/saomaicon.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/saoyisao.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/service.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/setting_mine.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/shengao.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/shengli.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/shibai.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/shijian.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/shijiebei.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/silvermedal.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/sort_asc.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/sort_desc.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/sort_none.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/splash.jpg
app/src/main/res/mipmap-xxhdpi/splash.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/star.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/star_empty.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/star_red.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/tizhong.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/tr_close.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/tr_open.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/update.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/uploads.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/used_keshi.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/vip.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/vip_gold.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/vx.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/wanpaibi.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/wc_age.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/wc_time.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/wodejifen.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/xiangji.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/xiaofei.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/yuezhanyueyong.pngBinary files differ
app/src/main/res/mipmap-xxhdpi/yundongying.pngBinary files differ
app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@ <resources> <string name="app_name">海豚英语</string> <string name="app_name">哆能智学-学习端</string> <string name="id_card">1234567890Xx</string> <string name="储值说明"><u>储值说明?</u></string> <string name="reserve_record"><u>上课记录</u></string> app/src/main/res/xml/item_game_1_scene.xml
@@ -44,9 +44,8 @@ android:alpha="0" motion:layout_constraintStart_toStartOf="@+id/iv_img" motion:layout_constraintEnd_toEndOf="@+id/iv_img" motion:layout_constraintTop_toTopOf="@+id/iv_img" motion:layout_constraintTop_toBottomOf="@+id/line_in" motion:layout_constraintBottom_toBottomOf="@+id/iv_img" motion:layout_constraintVertical_bias="0.6" android:layout_width="50dp" android:layout_height="50dp"/> </ConstraintSet> @@ -56,9 +55,8 @@ android:alpha="1" motion:layout_constraintStart_toStartOf="@+id/iv_img" motion:layout_constraintEnd_toEndOf="@+id/iv_img" motion:layout_constraintTop_toTopOf="@+id/iv_img" motion:layout_constraintTop_toBottomOf="@+id/line_in" motion:layout_constraintBottom_toBottomOf="@+id/iv_img" motion:layout_constraintVertical_bias="0.6" android:layout_width="50dp" android:layout_height="50dp"/> </ConstraintSet> xldutils-kotlin/src/main/res/mipmap-xxhdpi/title_logo.png