Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
p x
SuZhouAvp
Commits
066a88e4
Commit
066a88e4
authored
Aug 22, 2025
by
罗小雨
Browse files
本地模拟数据 车速 航向 电量
parent
7d910fb1
Changes
12
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/com/sd/cavphmi/bean/CarPanelBean.kt
View file @
066a88e4
...
@@ -33,14 +33,16 @@ class CarPanelBean {
...
@@ -33,14 +33,16 @@ class CarPanelBean {
/***档位**/
/***档位**/
var
tapPos
=
ObservableField
<
Int
>(
GearStatus
.
P
)
var
tapPos
=
ObservableField
<
Int
>(
GearStatus
.
P
)
var
gear
=
0
//剩余油量或电量
//剩余油量或电量
var
remainSoc
=
ObservableField
<
Int
>(
0
)
var
remainSoc
=
ObservableField
<
Int
>(
0
)
var
soc
=
0
//转向灯 1=left 2=right
//转向灯 1=left 2=right
var
lights
=
ObservableField
<
Int
>(-
1
)
var
lights
=
0
var
driveMode
=
ObservableField
(
""
)
var
driveMode
=
""
//航向角0.。360
//航向角0.。360
var
heading
=
ObservableField
<
Int
>(
0
)
var
heading
=
ObservableField
<
Int
>(
0
)
...
...
app/src/main/java/com/sd/cavphmi/bindadapters/ShowCarPanelObject.kt
View file @
066a88e4
...
@@ -30,10 +30,10 @@ object ShowCarPanelObject {
...
@@ -30,10 +30,10 @@ object ShowCarPanelObject {
var
tag
=
tv
.
tag
.
toString
().
toInt
()
var
tag
=
tv
.
tag
.
toString
().
toInt
()
// println("--------tag = ${tag} gear = ${gear}")
// println("--------tag = ${tag} gear = ${gear}")
if
(
tag
==
gear
)
{
if
(
tag
==
gear
)
{
tv
.
setTextColor
(
Color
.
BL
ACK
)
tv
.
setTextColor
(
Color
.
BL
UE
)
}
else
{
}
else
{
// tv.setTextColor(Color.GRAY)
// tv.setTextColor(Color.GRAY)
tv
.
setTextColor
(
"#
66000000
"
.
toColorInt
())
tv
.
setTextColor
(
"#
A59C9C
"
.
toColorInt
())
}
}
}
}
...
...
app/src/main/java/com/sd/cavphmi/ui/LoginActivity.kt
View file @
066a88e4
...
@@ -42,6 +42,11 @@ class LoginActivity : AppCompatActivity() {
...
@@ -42,6 +42,11 @@ class LoginActivity : AppCompatActivity() {
}
}
}
}
loginVm
.
loginData
.
observe
(
this
){
startActivity
(
Intent
(
this
,
MainActivity
::
class
.
java
))
}
//获取车辆信息
// HTTP获取车辆详情 还没调通
// HTTP获取车辆详情 还没调通
binding
.
btVehinfo
.
setOnClickListener
{
binding
.
btVehinfo
.
setOnClickListener
{
mainVm
.
getVehDetail
()
mainVm
.
getVehDetail
()
...
...
app/src/main/java/com/sd/cavphmi/ui/MainActivity.kt
View file @
066a88e4
...
@@ -74,6 +74,7 @@ class MainActivity : BaseActivity<ActivityMainBinding, MainVm>() {
...
@@ -74,6 +74,7 @@ class MainActivity : BaseActivity<ActivityMainBinding, MainVm>() {
binding
.
btVehicle
.
setOnClickListener
{
binding
.
btVehicle
.
setOnClickListener
{
viewModel
.
subVehicle
().
observe
(
this
)
{
viewModel
.
subVehicle
().
observe
(
this
)
{
// topicVehicle(it)
// topicVehicle(it)
}
}
}
}
//感知目标物
//感知目标物
...
...
app/src/main/java/com/sd/cavphmi/ui/fragment/CarPanelFragment.kt
View file @
066a88e4
package
com.sd.cavphmi.ui.fragment
package
com.sd.cavphmi.ui.fragment
import
android.graphics.Color
import
androidx.activity.viewModels
import
androidx.fragment.app.activityViewModels
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.lifecycleScope
import
com.sd.cavphmi.BR
import
com.sd.cavphmi.BR
import
com.sd.cavphmi.R
import
com.sd.cavphmi.R
import
com.sd.cavphmi.base.BaseFragment
import
com.sd.cavphmi.base.BaseFragment
import
com.sd.cavphmi.base.MyBaseViewModel
import
com.sd.cavphmi.base.MyBaseViewModel
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.bean.CarVehicleItem
import
com.sd.cavphmi.databinding.FragmentCarPanelBinding
import
com.sd.cavphmi.databinding.FragmentCarPanelBinding
import
com.sd.cavphmi.viewmodels.MainVm
import
com.sd.cavphmi.viewmodels.MockVM
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
...
@@ -17,7 +29,7 @@ import dagger.hilt.android.AndroidEntryPoint
...
@@ -17,7 +29,7 @@ import dagger.hilt.android.AndroidEntryPoint
* 车仪表
* 车仪表
*/
*/
@AndroidEntryPoint
@AndroidEntryPoint
class
CarPanelFragment
:
BaseFragment
<
FragmentCarPanelBinding
,
M
yBaseViewModel
>()
{
class
CarPanelFragment
:
BaseFragment
<
FragmentCarPanelBinding
,
M
ainVm
>()
{
//
//
// private var param1: String? = null
// private var param1: String? = null
// private var param2: String? = null
// private var param2: String? = null
...
@@ -30,6 +42,9 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, MyBaseViewModel>(
...
@@ -30,6 +42,9 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, MyBaseViewModel>(
// }
// }
// }
// }
private
val
mockVM
:
MockVM
by
activityViewModels
()
override
fun
getStatuBarColor
():
Int
{
override
fun
getStatuBarColor
():
Int
{
return
-
1
return
-
1
}
}
...
@@ -43,17 +58,72 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, MyBaseViewModel>(
...
@@ -43,17 +58,72 @@ class CarPanelFragment : BaseFragment<FragmentCarPanelBinding, MyBaseViewModel>(
return
R
.
layout
.
fragment_car_panel
return
R
.
layout
.
fragment_car_panel
}
}
override
fun
initViewModel
():
M
yBaseViewModel
{
override
fun
initViewModel
():
M
ainVm
{
return
ViewModelProvider
(
this
).
get
(
M
yBaseViewModel
::
class
.
java
)
return
ViewModelProvider
(
this
).
get
(
M
ainVm
::
class
.
java
)
}
}
override
fun
initVariableId
():
Int
{
override
fun
initVariableId
():
Int
{
return
BR
.
vm
return
BR
.
vm
}
}
private
var
currentNumber
=
0
// 初始数字
override
fun
initView
()
{
override
fun
initView
()
{
viewModel
.
mockVM
=
mockVM
binding
.
cpBean
=
viewModel
.
carPanelBean
//驾驶模式
if
(
viewModel
.
carPanelBean
.
driveMode
==
"1"
){
binding
.
tvDrivemode
.
text
=
"自动驾驶"
}
else
{
binding
.
tvDrivemode
.
text
=
"人工驾驶"
}
//车灯
if
(
viewModel
.
carPanelBean
.
lights
==
0
){
binding
.
ivLeftLight
.
setImageResource
(
R
.
drawable
.
trun_left_grey
)
binding
.
ivRightLight
.
setImageResource
(
R
.
drawable
.
trun_left_grey
)
}
else
if
(
viewModel
.
carPanelBean
.
lights
==
1
){
binding
.
ivLeftLight
.
setImageResource
(
R
.
drawable
.
trun_left_blue
)
binding
.
ivRightLight
.
setImageResource
(
R
.
drawable
.
trun_left_grey
)
}
else
{
binding
.
ivLeftLight
.
setImageResource
(
R
.
drawable
.
trun_left_grey
)
binding
.
ivRightLight
.
setImageResource
(
R
.
drawable
.
trun_right_blue
)
}
//档位
if
(
viewModel
.
carPanelBean
.
gear
==
0
){
binding
.
tvP
.
setTextColor
(
Color
.
BLUE
)
binding
.
tvR
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvN
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvD
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
}
else
if
(
viewModel
.
carPanelBean
.
gear
==
1
){
binding
.
tvP
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvR
.
setTextColor
(
Color
.
BLUE
)
binding
.
tvN
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvD
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
}
else
if
(
viewModel
.
carPanelBean
.
gear
==
2
){
binding
.
tvP
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvR
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvN
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvD
.
setTextColor
(
Color
.
BLUE
)
}
else
if
(
viewModel
.
carPanelBean
.
gear
==
3
){
binding
.
tvP
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvR
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
binding
.
tvN
.
setTextColor
(
Color
.
BLUE
)
binding
.
tvD
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
text_grey
))
}
// 启动协程定时切换
lifecycleScope
.
launch
{
while
(
true
)
{
if
(
currentNumber
>
100
){
return
@launch
}
binding
.
tvSoc
.
text
=
"${currentNumber}%"
binding
.
proSoc
.
progress
=
currentNumber
delay
(
1000
)
// 等待10秒
currentNumber
++
println
(
"-----"
+
currentNumber
)
}
}
}
}
override
fun
initListener
()
{
override
fun
initListener
()
{
...
...
app/src/main/java/com/sd/cavphmi/utils/MyContants.kt
View file @
066a88e4
...
@@ -22,7 +22,7 @@ object MyContants {
...
@@ -22,7 +22,7 @@ object MyContants {
//仅仅用于测试接口联通性,这里可不传
//仅仅用于测试接口联通性,这里可不传
private
val
reType
=
"51world"
private
val
reType
=
"51world"
//测试环境
//
var WSHOST = "wss://itg-dev.cu-sc.com:19443/WSPLUSV5/socket?token=${WSTOKEN}&reType=${reType}&"
var
WSHOST
=
"wss://itg-dev.cu-sc.com:19443/WSPLUSV5/socket?token=${WSTOKEN}&"
var
WSHOST
=
"wss://itg-dev.cu-sc.com:19443/WSPLUSV5/socket?token=${WSTOKEN}&"
// var PORT = if (IS_DEBUG) "123" else "34534"
// var PORT = if (IS_DEBUG) "123" else "34534"
...
...
app/src/main/java/com/sd/cavphmi/viewmodels/LoginVm.kt
View file @
066a88e4
...
@@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
...
@@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
androidx.lifecycle.viewModelScope
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.net.MyResult
import
com.sd.cavphmi.net.MyResult
import
com.sd.cavphmi.repositorys.AvpDataRepo
import
com.sd.cavphmi.repositorys.AvpDataRepo
import
com.sd.cavphmi.utils.MyContants
import
com.sd.cavphmi.utils.MyContants
...
@@ -16,6 +17,11 @@ class LoginVm @Inject constructor(private var avpDataRepo: AvpDataRepo) : ViewMo
...
@@ -16,6 +17,11 @@ class LoginVm @Inject constructor(private var avpDataRepo: AvpDataRepo) : ViewMo
//1= 登录成功 0 = 登录失败
//1= 登录成功 0 = 登录失败
var
lLogin
=
MutableLiveData
(-
1
)
var
lLogin
=
MutableLiveData
(-
1
)
var
loginData
=
MutableLiveData
<
String
>()
get
()
=
field
set
(
value
)
{
field
=
value
}
/****
/****
* 登录
* 登录
...
@@ -35,6 +41,7 @@ class LoginVm @Inject constructor(private var avpDataRepo: AvpDataRepo) : ViewMo
...
@@ -35,6 +41,7 @@ class LoginVm @Inject constructor(private var avpDataRepo: AvpDataRepo) : ViewMo
when
(
result
)
{
when
(
result
)
{
is
MyResult
.
Success
<
String
>
->
{
is
MyResult
.
Success
<
String
>
->
{
MyContants
.
HTTP_TOKEN
=
result
.
data
MyContants
.
HTTP_TOKEN
=
result
.
data
loginData
.
postValue
(
"true"
)
lLogin
.
value
=
1
lLogin
.
value
=
1
}
}
else
->
{
else
->
{
...
...
app/src/main/java/com/sd/cavphmi/viewmodels/MainVm.kt
View file @
066a88e4
package
com.sd.cavphmi.viewmodels
package
com.sd.cavphmi.viewmodels
import
android.content.Context
import
android.content.Context
import
android.util.Log
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.viewModelScope
import
androidx.lifecycle.viewModelScope
...
@@ -34,6 +35,7 @@ import kotlinx.coroutines.launch
...
@@ -34,6 +35,7 @@ import kotlinx.coroutines.launch
import
java.net.URI
import
java.net.URI
import
java.util.Timer
import
java.util.Timer
import
javax.inject.Inject
import
javax.inject.Inject
import
kotlin.math.truncate
@HiltViewModel
@HiltViewModel
...
@@ -44,7 +46,9 @@ class MainVm @Inject constructor(
...
@@ -44,7 +46,9 @@ class MainVm @Inject constructor(
// private var client: MyWebSocketClient? = null
// private var client: MyWebSocketClient? = null
//网联车辆位姿socket
private
val
TAG
=
"MainVm"
//w网联车辆socket
private
var
vecLocWSClient
:
VecLocWSClient
?
=
null
private
var
vecLocWSClient
:
VecLocWSClient
?
=
null
//感知物socket
//感知物socket
...
@@ -71,7 +75,7 @@ class MainVm @Inject constructor(
...
@@ -71,7 +75,7 @@ class MainVm @Inject constructor(
lateinit
var
mockVM
:
MockVM
lateinit
var
mockVM
:
MockVM
//是否需要模拟
//是否需要模拟
var
isMock
=
fals
e
var
isMock
=
tru
e
//车辆位姿数据
//车辆位姿数据
var
carVehicle
=
MutableLiveData
<
CarVehicle
>()
var
carVehicle
=
MutableLiveData
<
CarVehicle
>()
...
@@ -139,7 +143,7 @@ class MainVm @Inject constructor(
...
@@ -139,7 +143,7 @@ class MainVm @Inject constructor(
* **/
* **/
fun
subVehicle
():
LiveData
<
CarVehicle
>
{
fun
subVehicle
():
LiveData
<
CarVehicle
>
{
if
(
isMock
)
{
if
(
isMock
)
{
//
mockVM.onVehicleMock(carVehicle, carPanelBean
.heading, carPanelBean.speed
)
mockVM
.
onVehicleMock
(
carVehicle
,
carPanelBean
)
}
else
{
}
else
{
try
{
try
{
if
(
vecLocWSClient
==
null
)
{
if
(
vecLocWSClient
==
null
)
{
...
@@ -149,12 +153,15 @@ class MainVm @Inject constructor(
...
@@ -149,12 +153,15 @@ class MainVm @Inject constructor(
vecLocWSClient
?.
onDataCb
=
object
:
VecLocWSClient
.
OnDataCb
{
vecLocWSClient
?.
onDataCb
=
object
:
VecLocWSClient
.
OnDataCb
{
override
fun
onMsg
(
str
:
String
)
{
override
fun
onMsg
(
str
:
String
)
{
viewModelScope
.
launch
{
viewModelScope
.
launch
{
//下载到sd卡下面的DownLoad文件夹下面
FileIoUtils
.
writeToFile
(
str
,
"CarVehicle.txt"
)
FileIoUtils
.
writeToFile
(
str
,
"CarVehicle.txt"
)
var
bean
=
gson
.
fromJson
(
str
,
CarVehicle
::
class
.
java
)
var
bean
=
gson
.
fromJson
(
str
,
CarVehicle
::
class
.
java
)
carVehicle
.
postValue
(
bean
)
carVehicle
.
postValue
(
bean
)
}
}
}
}
}
}
}
else
{
Log
.
e
(
TAG
,
"进来了"
)
}
}
}
catch
(
e
:
Exception
)
{
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
e
.
printStackTrace
()
...
...
app/src/main/java/com/sd/cavphmi/viewmodels/MockVM.kt
View file @
066a88e4
...
@@ -6,7 +6,9 @@ import androidx.lifecycle.MutableLiveData
...
@@ -6,7 +6,9 @@ import androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
androidx.lifecycle.viewModelScope
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.sd.cavphmi.bean.CarPanelBean
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.bean.CarVehicle
import
com.sd.cavphmi.bean.CarVehicleItem
import
com.sd.cavphmi.bean.PerTarget
import
com.sd.cavphmi.bean.PerTarget
import
com.sd.cavphmi.utils.FileIoUtils
import
com.sd.cavphmi.utils.FileIoUtils
import
dagger.hilt.android.lifecycle.HiltViewModel
import
dagger.hilt.android.lifecycle.HiltViewModel
...
@@ -38,8 +40,7 @@ class MockVM @Inject constructor(
...
@@ -38,8 +40,7 @@ class MockVM @Inject constructor(
* **/
* **/
fun
onVehicleMock
(
fun
onVehicleMock
(
carVehicle
:
MutableLiveData
<
CarVehicle
>,
carVehicle
:
MutableLiveData
<
CarVehicle
>,
heading
:
ObservableField
<
Int
>,
carPanelBean
:
CarPanelBean
speed
:
ObservableField
<
Float
>
)
{
)
{
viewModelScope
.
launch
{
viewModelScope
.
launch
{
val
dst
=
mutableListOf
<
String
>()
val
dst
=
mutableListOf
<
String
>()
...
@@ -48,8 +49,10 @@ class MockVM @Inject constructor(
...
@@ -48,8 +49,10 @@ class MockVM @Inject constructor(
delay
(
1000
)
delay
(
1000
)
val
bean
=
parseDataBean
(
str
,
CarVehicle
::
class
.
java
)
val
bean
=
parseDataBean
(
str
,
CarVehicle
::
class
.
java
)
println
(
"------模拟车辆位姿数据 = ${bean}"
)
println
(
"------模拟车辆位姿数据 = ${bean}"
)
heading
.
set
(
bean
.
first
().
heading
.
toInt
())
println
(
"------车速 = ${bean.first().speed}"
)
speed
.
set
(
bean
.
first
().
speed
.
toFloat
())
println
(
"------电量 = ${bean.first().soc}"
)
carPanelBean
.
speed
.
set
(
bean
.
first
().
speed
.
toInt
())
carPanelBean
.
heading
.
set
(
bean
.
first
().
heading
.
toInt
())
carVehicle
.
value
=
bean
carVehicle
.
value
=
bean
}
}
}
}
...
...
app/src/main/java/com/sd/cavphmi/websockets/VecLocWSClient.kt
View file @
066a88e4
...
@@ -22,8 +22,8 @@ class VecLocWSClient : WebSocketClient {
...
@@ -22,8 +22,8 @@ class VecLocWSClient : WebSocketClient {
)
)
override
fun
onOpen
(
handshakedata
:
ServerHandshake
?)
{
override
fun
onOpen
(
handshakedata
:
ServerHandshake
?)
{
//
send("Hello, it is me. Mario :)")
send
(
"Hello, it is me. Mario :)"
)
//
System.out.println(TAG + "new connection opened")
System
.
out
.
println
(
TAG
+
"new connection opened"
)
}
}
override
fun
onMessage
(
message
:
String
?)
{
override
fun
onMessage
(
message
:
String
?)
{
...
...
app/src/main/res/layout/activity_main.xml
View file @
066a88e4
...
@@ -20,6 +20,8 @@
...
@@ -20,6 +20,8 @@
<!-- 车辆仪表-->
<!-- 车辆仪表-->
<FrameLayout
<FrameLayout
android:id=
"@+id/map_car_pan"
android:id=
"@+id/map_car_pan"
android:layout_alignParentRight=
"true"
android:layout_alignParentBottom=
"true"
android:layout_width=
"@dimen/map_left_top_widget"
android:layout_width=
"@dimen/map_left_top_widget"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
...
@@ -34,6 +36,7 @@
...
@@ -34,6 +36,7 @@
<LinearLayout
<LinearLayout
android:layout_marginTop=
"30dp"
android:id=
"@+id/ll_1"
android:id=
"@+id/ll_1"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
...
...
app/src/main/res/layout/fragment_car_panel.xml
View file @
066a88e4
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
android:id=
"@+id/tv_p"
android:id=
"@+id/tv_p"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:tag=
"
33
"
android:tag=
"
0
"
android:text=
"P"
android:text=
"P"
android:textColor=
"@color/text_grey"
android:textColor=
"@color/text_grey"
android:textSize=
"@dimen/sp_14"
android:textSize=
"@dimen/sp_14"
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:layout_marginLeft=
"10dp"
android:tag=
"
32
"
android:tag=
"
1
"
android:text=
"R"
android:text=
"R"
android:textColor=
"@color/text_grey"
android:textColor=
"@color/text_grey"
android:textSize=
"@dimen/sp_14"
android:textSize=
"@dimen/sp_14"
...
@@ -77,7 +77,7 @@
...
@@ -77,7 +77,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:layout_marginLeft=
"10dp"
android:tag=
"3
4
"
android:tag=
"3"
android:text=
"N"
android:text=
"N"
android:textColor=
"@color/text_grey"
android:textColor=
"@color/text_grey"
android:textSize=
"@dimen/sp_14"
android:textSize=
"@dimen/sp_14"
...
@@ -89,7 +89,7 @@
...
@@ -89,7 +89,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"10dp"
android:layout_marginLeft=
"10dp"
android:tag=
"
31
"
android:tag=
"
2
"
android:text=
"D"
android:text=
"D"
android:textColor=
"@color/text_grey"
android:textColor=
"@color/text_grey"
android:textSize=
"@dimen/sp_14"
android:textSize=
"@dimen/sp_14"
...
@@ -120,19 +120,19 @@
...
@@ -120,19 +120,19 @@
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<TextView
<TextView
android:id=
"@+id/tv_soc"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:showProTv=
"@{cpBean.remainSoc}"
tools:text=
"90%"
/>
tools:text=
"90%"
/>
<ProgressBar
<ProgressBar
android:id=
"@+id/pro_soc"
style=
"@style/MyProgressBarStyle"
style=
"@style/MyProgressBarStyle"
android:layout_width=
"@dimen/dp_40"
android:layout_width=
"@dimen/dp_40"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:max=
"100"
android:max=
"100"
android:minHeight=
"8dp"
android:minHeight=
"8dp"
android:paddingVertical=
"0dp"
android:paddingVertical=
"0dp"
app:showProgress=
"@{cpBean.remainSoc}"
tools:progress=
"50"
/>
tools:progress=
"50"
/>
</LinearLayout>
</LinearLayout>
...
@@ -186,6 +186,7 @@
...
@@ -186,6 +186,7 @@
<!-- app:showAutoDri="@{cpBean.driveMode}"-->
<!-- app:showAutoDri="@{cpBean.driveMode}"-->
<TextView
<TextView
android:id=
"@+id/tv_drivemode"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
...
@@ -203,6 +204,7 @@
...
@@ -203,6 +204,7 @@
app:showTurnLight=
"@{cpBean.lights}"
>
app:showTurnLight=
"@{cpBean.lights}"
>
<ImageView
<ImageView
android:id=
"@+id/iv_left_light"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:tag=
"left"
android:tag=
"left"
...
@@ -210,6 +212,7 @@
...
@@ -210,6 +212,7 @@
tools:src=
"@drawable/trun_left_grey"
/>
tools:src=
"@drawable/trun_left_grey"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_right_light"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_20"
android:layout_marginLeft=
"@dimen/dp_20"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment