[1.6.0] bus乘客屏路线面板调整

This commit is contained in:
wangmingjun
2022-09-20 19:49:24 +08:00
parent 38c439830d
commit d355d98161
14 changed files with 128 additions and 63 deletions

View File

@@ -8,6 +8,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.Group;
import androidx.recyclerview.widget.RecyclerView;
import com.mogo.och.bus.passenger.R;
@@ -15,6 +16,8 @@ import com.mogo.och.bus.passenger.bean.BusPassengerStation;
import java.util.List;
import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STATUS_ARRIVING;
import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STATUS_LEAVING;
import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STATUS_STOPPED;
/**
@@ -28,7 +31,6 @@ public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter<Recycl
private static final int LINE_START_STATION_ITEM = 0;
private static final int LINE_END_STATION_ITEM = 1;
private static final int LINE_MIDDLE_STATION_ITEM = 2;
// private String preArrivingStation = "";
public BusPassengerLineStationsAdapter(Context context, List<BusPassengerStation> stations){
this.mContext = context;
@@ -38,78 +40,54 @@ public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter<Recycl
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == LINE_START_STATION_ITEM){
View view = LayoutInflater.from(mContext).inflate(R.layout.bus_p_stations_start_item,parent,false);
StartStationViewHolder viewHolder = new StartStationViewHolder(view);
return viewHolder;
}else if (viewType == LINE_END_STATION_ITEM) {
View view = LayoutInflater.from(mContext).inflate(R.layout.bus_p_stations_end_item,parent,false);
EndStationViewHolder viewHolder = new EndStationViewHolder(view);
return viewHolder;
}else {
View view = LayoutInflater.from(mContext).inflate(R.layout.bus_p_stations_middle_item,parent,false);
MiddleStationViewHolder viewHolder = new MiddleStationViewHolder(view);
return viewHolder;
}
View view = LayoutInflater.from(mContext).inflate(R.layout.bus_p_stations_common_item,parent,false);
StationViewHolder viewHolder = new StationViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
BusPassengerStation station = mStations.get(position);
if (holder instanceof StartStationViewHolder){
StartStationViewHolder viewHolder = (StartStationViewHolder)holder;
// if (!preArrivingStation.equals(station.getName())){
viewHolder.startStationName.setText(station.getName());
// }
if (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()){//到站
viewHolder.curStationBg.setVisibility(View.VISIBLE);
viewHolder.stationCircle.setVisibility(View.GONE);
viewHolder.startStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
viewHolder.startStationName.setSelected(true);
// preArrivingStation = station.getName();
StationViewHolder viewHolder = (StationViewHolder)holder;
viewHolder.stationName.setText(station.getName());
if (position == 0){ //第一个 起点
viewHolder.stationTagTxt.setText("");
viewHolder.stationStationTag.setBackground(mContext.getDrawable(R.drawable.bg_bus_p_start_tag_bg));
viewHolder.groupStationTagPanel.setVisibility(View.VISIBLE);
viewHolder.curArrowBg.setVisibility(View.GONE);
if (station.getDrivingStatus() == STATION_STATUS_STOPPED && station.isLeaving()){//到达未离开
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
}else {
viewHolder.curStationBg.setVisibility(View.GONE);
viewHolder.stationCircle.setVisibility(View.VISIBLE);
viewHolder.startStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
viewHolder.startStationName.setSelected(false);
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
}
}else if (holder instanceof EndStationViewHolder){
EndStationViewHolder viewHolder = (EndStationViewHolder)holder;
// if (!preArrivingStation.equals(station.getName())){
viewHolder.endStationName.setText(station.getName());
// }
BusPassengerStation preStation = mStations.get(position -1);
if ((preStation.getDrivingStatus() == STATION_STATUS_STOPPED && preStation.isLeaving())
|| (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving())){//到站
viewHolder.curStationBg.setVisibility(View.VISIBLE);
viewHolder.stationCircle.setVisibility(View.GONE);
viewHolder.endStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
viewHolder.endStationName.setSelected(true);
// preArrivingStation = station.getName();
}else{
if (position == mStations.size() - 1){
viewHolder.stationTagTxt.setText("");
viewHolder.stationStationTag.setBackground(mContext.getDrawable(R.drawable.bg_bus_p_end_tag_bg));
viewHolder.groupStationTagPanel.setVisibility(View.VISIBLE);
}else {
viewHolder.curStationBg.setVisibility(View.GONE);
viewHolder.stationCircle.setVisibility(View.VISIBLE);
viewHolder.endStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
viewHolder.endStationName.setSelected(false);
viewHolder.groupStationTagPanel.setVisibility(View.GONE);
}
}else {
MiddleStationViewHolder viewHolder = (MiddleStationViewHolder)holder;
// if (!preArrivingStation.equals(station.getName())){
viewHolder.middleStationName.setText(station.getName());
// }
viewHolder.curArrowBg.setVisibility(View.VISIBLE);
BusPassengerStation preStation = mStations.get(position -1);
if ((preStation.getDrivingStatus() == STATION_STATUS_STOPPED && preStation.isLeaving())
|| (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving())) {//到站
viewHolder.curStationBg.setVisibility(View.VISIBLE);
viewHolder.middleStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
viewHolder.stationCircle.setVisibility(View.GONE);
viewHolder.middleStationName.setSelected(true);
// preArrivingStation = station.getName();
}else {
viewHolder.curStationBg.setVisibility(View.GONE);
viewHolder.middleStationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
viewHolder.stationCircle.setVisibility(View.VISIBLE);
viewHolder.middleStationName.setSelected(false);
if (station.getDrivingStatus() == STATION_STATUS_LEAVING){ //过站
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
viewHolder.curArrowBg.setImageResource(R.drawable.bus_p_line_grey);
viewHolder.stationStationTag.setImageResource(R.drawable.bus_p_point_gray);
} else if (station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving()){//刚到站未离开的
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
viewHolder.curArrowBg.setImageResource(R.drawable.bus_p_line_grey);
viewHolder.stationStationTag.setImageResource(R.drawable.bus_p_point_green);
}else if (station.getDrivingStatus() == STATION_STATUS_ARRIVING && preStation.isLeaving()){//即将到站
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_current_station_txt_color));
viewHolder.curArrowBg.setImageResource(R.drawable.bus_p_line_green);
viewHolder.stationStationTag.setImageResource(R.drawable.bus_p_point_green);
}else if (station.getDrivingStatus() == STATION_STATUS_ARRIVING &&
(preStation.getDrivingStatus() == STATION_STATUS_ARRIVING
|| preStation.getDrivingStatus() == STATION_STATUS_STOPPED)){ //未到站的并且前面也是未到站或者刚到站的
viewHolder.stationName.setTextColor(mContext.getResources().getColor(R.color.bus_p_station_txt_color));
viewHolder.curArrowBg.setImageResource(R.drawable.bus_p_line_blue);
viewHolder.stationStationTag.setImageResource(R.drawable.bus_p_point_blue);
}
}
}
@@ -132,6 +110,23 @@ public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter<Recycl
}
}
class StationViewHolder extends RecyclerView.ViewHolder{
public TextView stationName;
public ImageView stationCircle;
public ImageView curArrowBg;
public ImageView stationStationTag;
public TextView stationTagTxt;
public Group groupStationTagPanel;
public StationViewHolder(@NonNull View itemView) {
super(itemView);
stationName = itemView.findViewById(R.id.bus_p_station);
stationCircle = itemView.findViewById(R.id.bus_p_circle);
curArrowBg = itemView.findViewById(R.id.bus_p_cur_arrow_bg);
stationStationTag = itemView.findViewById(R.id.bus_p_tag);
stationTagTxt = itemView.findViewById(R.id.bus_p_tag_txt);
groupStationTagPanel = itemView.findViewById(R.id.group_station_tag_panel);
}
}
class StartStationViewHolder extends RecyclerView.ViewHolder{
public TextView startStationName;

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/bus_p_station"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="--"
android:textSize="@dimen/bus_p_station_txt_size"
android:textStyle="bold"
android:includeFontPadding = "false"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:layout_marginRight="@dimen/dp_60"
android:textColor="@color/bus_p_station_txt_color"
android:layout_marginLeft="@dimen/dp_90"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/bus_p_tag"
app:layout_constraintTop_toBottomOf="@+id/bus_p_cur_arrow_bg"/>
<ImageView
android:id="@+id/bus_p_circle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bus_p_point_blue"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@+id/bus_p_station"
app:layout_constraintBottom_toBottomOf="@+id/bus_p_station"/>
<ImageView
android:id="@+id/bus_p_cur_arrow_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/bus_p_line_blue"
app:layout_constraintLeft_toLeftOf="@+id/bus_p_circle"
app:layout_constraintRight_toRightOf="@+id/bus_p_circle"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/bus_p_tag"
android:layout_width="@dimen/bus_p_station_tag_width_height"
android:layout_height="@dimen/bus_p_station_tag_width_height"
android:background="@drawable/bg_bus_p_end_tag_bg"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/bus_p_tag_txt"
android:layout_width="@dimen/bus_p_station_tag_width_height"
android:layout_height="@dimen/bus_p_station_tag_width_height"
android:textSize="@dimen/bus_p_station_tag_txt_size"
android:textColor="@color/bus_p_end_tag_txt_color"
android:text="@string/bus_p_end_station_txt_tag"
android:includeFontPadding="false"
android:gravity="center"
app:layout_constraintLeft_toLeftOf="@+id/bus_p_tag"
app:layout_constraintRight_toRightOf="@+id/bus_p_tag"
app:layout_constraintTop_toTopOf="@+id/bus_p_tag"
app:layout_constraintBottom_toBottomOf="@+id/bus_p_tag"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/group_station_tag_panel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="bus_p_tag,bus_p_tag_txt"/>
</androidx.constraintlayout.widget.ConstraintLayout>