diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt index 5a09429f26..96c7cdec05 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerFunctionSoftFragment.kt @@ -1,11 +1,21 @@ package com.mogo.och.bus.passenger.ui +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.LayerDrawable +import android.graphics.drawable.ScaleDrawable +import android.media.AudioManager import android.os.Bundle +import android.view.Gravity import android.view.View +import android.widget.SeekBar +import android.widget.SeekBar.OnSeekBarChangeListener import com.mogo.commons.mvp.MvpFragment import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionSoftPresenter +import com.yangyakun.main.ui.loading.drawable.MineGradientDrawable import kotlinx.android.synthetic.m1.bus_p_function_setting_soft_fragment.* +import me.jessyan.autosize.utils.AutoSizeUtils /** * @author: yangyakun @@ -41,32 +51,90 @@ class BusPassengerFunctionSoftFragment : } rg_select_function.check(R.id.tv_setting_aircondition) tv_light_top_01.setOnCheckedChangeListener { buttonView, isChecked -> - setLightImage(isChecked,tv_light_top_02.isChecked,tv_light_atmosphere.isChecked) + setLightImage(isChecked, tv_light_top_02.isChecked, tv_light_atmosphere.isChecked) } tv_light_top_02.setOnCheckedChangeListener { buttonView, isChecked -> - setLightImage(tv_light_top_01.isChecked,isChecked,tv_light_atmosphere.isChecked) + setLightImage(tv_light_top_01.isChecked, isChecked, tv_light_atmosphere.isChecked) } tv_light_atmosphere.setOnCheckedChangeListener { buttonView, isChecked -> - setLightImage(tv_light_top_01.isChecked,tv_light_top_02.isChecked,isChecked) + setLightImage(tv_light_top_01.isChecked, tv_light_top_02.isChecked, isChecked) + } + setVoiceInfo() + } + + private var mAudioManager: AudioManager? = null + private var mMaxVolume: Int? = 100; + + + private fun setVoiceInfo() { + val dp2px = AutoSizeUtils.dp2px(context, 26f)//进度条高度 + val temp03 = + MineGradientDrawable(Color.parseColor("#2CBFFC"), Color.parseColor("#1060FF"), dp2px) + val scaleDrawable3 = ScaleDrawable(temp03, Gravity.START, 1f, 0f) + val temp01 = + MineGradientDrawable(Color.parseColor("#96A5C2"), Color.parseColor("#96A5C2"), dp2px) + val arr = arrayOf(temp01, scaleDrawable3) + val ld = LayerDrawable(arr) + ld.setDrawableByLayerId(android.R.id.background, temp01) + ld.setDrawableByLayerId(android.R.id.progress, scaleDrawable3) + sb_voice_bar.setProgressDrawableTiled(ld) + sb_voice_bar.max = 100 + sb_voice_bar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { + tv_current_voice_value.text = "$progress%" + if (fromUser) { + mMaxVolume?.let { + mAudioManager?.setStreamVolume( + AudioManager.STREAM_MUSIC, + ((progress.toFloat() / 100) * it).toInt(), + AudioManager.FLAG_SHOW_UI + ) + } + } + if (progress == 0) { + iv_voice.setImageResource(R.drawable.bus_p_function_voice_middle_select) + iv_end_voice.setImageResource(R.drawable.bus_p_function_voice_min) + } else { + iv_voice.setImageResource(R.drawable.bus_p_function_voice_middle_selected) + iv_end_voice.setImageResource(R.drawable.bus_p_function_voice_max) + } + + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) {} + override fun onStopTrackingTouch(seekBar: SeekBar?) {} + }) + + context?.let { + mAudioManager = it.getSystemService(Context.AUDIO_SERVICE) as AudioManager + mMaxVolume = mAudioManager?.getStreamMaxVolume(AudioManager.STREAM_MUSIC) + val mCurrentVolume = mAudioManager?.getStreamVolume(AudioManager.STREAM_MUSIC) + mMaxVolume?.let { max -> + mCurrentVolume?.let { current -> + val fl = current.toFloat() / max * 100 + sb_voice_bar.progress = fl.toInt() + } + } + } } - private fun setLightImage(leftLight:Boolean, rightLight:Boolean, atmosphereLight:Boolean){ - if(leftLight&&rightLight){ + private fun setLightImage(leftLight: Boolean, rightLight: Boolean, atmosphereLight: Boolean) { + if (leftLight && rightLight) { iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_middle_selected)// 都打开 - }else if(!leftLight&&!rightLight){ + } else if (!leftLight && !rightLight) { iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_nor)// 都关闭 - }else { - if(leftLight){ + } else { + if (leftLight) { iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_left)// 左面开 } - if(rightLight){ + if (rightLight) { iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_right)// 左面开 } } - if(atmosphereLight){ + if (atmosphereLight) { iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_select) - }else{ + } else { iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_nor) } } diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt new file mode 100644 index 0000000000..539da9fb7c --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt @@ -0,0 +1,95 @@ +package com.yangyakun.main.ui.loading.drawable + +import android.graphics.* +import android.graphics.drawable.Drawable +import android.util.Log +import androidx.core.graphics.toRectF + +class MineGradientDrawable(colorStart: Int = Color.BLUE,colorEnd:Int = Color.RED,height:Int) : Drawable() { + + private var mPaint: Paint = Paint(Paint.ANTI_ALIAS_FLAG) + + private var colorStart:Int = Color.BLUE + private var colorEnd:Int = Color.RED + + private var colorWith = 4f + private var transparentWidth = 4f + + private var index = arrayOf(0.53,0.76,0.92) + private var tartHeight = 0 + + private var heightDex = 0 + + private var currendDex = mutableListOf() + + init { + this.colorStart = colorStart + this.colorEnd = colorEnd + this.tartHeight = height + Color.TRANSPARENT + mPaint.isAntiAlias = true + index.forEachIndexed { index, d -> + currendDex += (1-d)/2 + } + } + + override fun draw(canvas: Canvas) { + val rect = bounds + mPaint.shader = LinearGradient(0f, 0f, rect.right.toFloat(), rect.bottom.toFloat(), intArrayOf(colorStart,colorEnd), floatArrayOf(0f,1f), Shader.TileMode.CLAMP) + var size = (rect.width() / (colorWith + transparentWidth)).toInt() + if((colorWith+transparentWidth)*size+colorWith>rect.right){ + size -= 1 + } + if(rect.height()>tartHeight){ + //实际高度大于目标高度 上增加高度差 下减去高度差 + heightDex = (rect.height() - tartHeight) / 2 + } + + var countstep = 0 + while (true){ + val rectF = rect.toRectF() + var height = 0f + height = if(rect.height()>tartHeight){ + tartHeight.toFloat() + }else{ + rectF.bottom - rectF.top + } + // 计算前几个和后几个特殊高度递增和递减 + var dex = 0f; + if(countstepcurrendDex.size) { + if (size >= countstep && (size - countstep) < currendDex.size) { + dex = (height * currendDex[size - countstep]).toFloat() + } + } + rectF.top = dex+heightDex + rectF.bottom = rectF.bottom-dex-heightDex + rectF.left = (colorWith+transparentWidth)*countstep + rectF.right = colorWith+(colorWith+transparentWidth)*countstep + if(rectF.right>= rect.right){ + break + } + countstep++ + canvas.drawRoundRect(rectF,48f,48f,mPaint) + } + Log.d("MineGradientDrawable","$countstep-------------$size") + } + + override fun setAlpha(alpha: Int) { + mPaint.alpha = alpha + invalidateSelf() + } + + override fun setColorFilter(colorFilter: ColorFilter?) { + mPaint.colorFilter = colorFilter + invalidateSelf() + } + + override fun getOpacity(): Int { + return PixelFormat.TRANSLUCENT + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_atmosphere_select.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_atmosphere_select.png index 99ef0dbded..6771affff9 100644 Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_atmosphere_select.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_atmosphere_select.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png new file mode 100644 index 0000000000..064161dc38 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png new file mode 100644 index 0000000000..0020fb6eb9 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_middle_selected.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_middle_selected.png index dc0eea28ad..539bd35502 100644 Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_middle_selected.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_middle_selected.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_left.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_left.png index 1f5acfea92..598e43c528 100644 Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_left.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_left.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_right.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_right.png index 32a0cd4ca9..106aa51d43 100644 Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_right.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_light_select_right.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png new file mode 100644 index 0000000000..e5a1b0df75 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png new file mode 100644 index 0000000000..51e3d0de17 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_humb.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_humb.png new file mode 100644 index 0000000000..347bb58d46 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_humb.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_select.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_left_select_src.png similarity index 100% rename from OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_select.png rename to OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_left_select_src.png diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_selected.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_left_selected_src.png similarity index 100% rename from OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_selected.png rename to OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_left_selected_src.png diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_max.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_max.png new file mode 100644 index 0000000000..14721e6782 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_max.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_select.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_select.png new file mode 100644 index 0000000000..0ba3b9a6d1 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_select.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_selected.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_selected.png new file mode 100644 index 0000000000..112d8286f2 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_middle_selected.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_min.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_min.png new file mode 100644 index 0000000000..0cb4882418 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_voice_min.png differ diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml new file mode 100644 index 0000000000..3a40234a06 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_information_bg_selector.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_information_bg_selector.xml new file mode 100644 index 0000000000..1cda431cc6 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_information_bg_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_soft_bg_selector.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_soft_bg_selector.xml new file mode 100644 index 0000000000..3a40234a06 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_soft_bg_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_voice_left_select.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_voice_left_select.xml index 0204cda01d..e490d36639 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_voice_left_select.xml +++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_voice_left_select.xml @@ -1,7 +1,7 @@ + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml index 61efd0611c..5a9ca46877 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml @@ -6,31 +6,31 @@ + android:layout_width="@dimen/dp_162" + android:layout_height="@dimen/dp_179"/> + android:layout_width="@dimen/dp_181" + android:layout_height="@dimen/dp_179"/> + android:layout_width="@dimen/dp_181" + android:layout_height="@dimen/dp_179"/> \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_fragment.xml index bb148d21f0..110538eaa4 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_fragment.xml @@ -15,34 +15,34 @@ + android:layout_width="@dimen/dp_162" + android:layout_height="@dimen/dp_179"/> + android:layout_width="@dimen/dp_181" + android:layout_height="@dimen/dp_179"/> + android:layout_width="@dimen/dp_181" + android:layout_height="@dimen/dp_179"/> \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml index 1dad4ded5e..edd5905c29 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_function_setting_soft_fragment.xml @@ -85,7 +85,7 @@ android:id="@+id/g_aircondition_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:visibility="visible" + android:visibility="gone" app:constraint_referenced_ids="iv_aircondition" /> @@ -179,24 +179,81 @@ - + + + + + + + + + + + android:visibility="visible" + app:constraint_referenced_ids="iv_voice,sb_voice_bar,tv_voice_title,iv_end_voice,iv_start_voice,tv_current_voice_value" />