Android实现快递物流时间轴效果

时间:2021-11-10 14:35:54

本文实例为大家分享了Android实现快递物流时间轴效果展示的具体代码,供大家参考,具体内容如下

首先,这篇参考了别人的代码。根据自己的项目需求简单改造了一下,效果图如下

Android实现快递物流时间轴效果

xml:代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
 
 <ListView
  android:id="@+id/lv_list"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:cacheColorHint="@null"
  android:divider="@null" >
 </ListView>
 
</LinearLayout>

接下来是Activity,准备数据就好了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class TimeLineTextActivity extends Activity{
  
 private ListView listView;
 private TimeLineAdapter adapter;
  
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
   
  listView=(ListView) findViewById(R.id.lv_list);
  listView.setDividerHeight(0);
  adapter = new TimeLineAdapter(this, initData());
  listView.setAdapter(adapter);
   
 }
 
 private List<Map<String, Object>> initData() {
  List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
   
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("title", "提交已完成......");
  map.put("time", "2015-10-22 14:00:00");
  list.add(map);
   
  map = new HashMap<String, Object>();
  map.put("title", "正在审核中......");
  map.put("time", "2015-10-22 15:00:00");
  list.add(map);
   
  map = new HashMap<String, Object>();
  map.put("title", "客服将会给您打电话......");
  map.put("time", "2015-10-22 16:00:00");
  list.add(map);
   
  map = new HashMap<String, Object>();
  map.put("title", "订单已完成");
  map.put("time", "2015-10-22 17:00:00");
  list.add(map);
     
  return list;
   
 }
 
}

Adapter:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class TimeLineAdapter extends BaseAdapter {
 private Context context;
 private List<Map<String,Object>> list;
  private LayoutInflater inflater;
  
  public TimeLineAdapter(Context context, List<Map<String, Object>> list) {
   super();
   this.context = context;
   this.list = list;
  }
 
 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return list.size();
 }
 
 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return position;
 }
 
 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }
 
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  TimeLineHolder viewHolder = null;
  if (convertView == null) {
   inflater = LayoutInflater.from(parent.getContext());
   convertView = inflater.inflate(R.layout.itemtimeline2, null);
   viewHolder = new TimeLineHolder();
 
   viewHolder.title = (TextView) convertView.findViewById(R.id.title);
   viewHolder.time = (TextView) convertView.findViewById(R.id.time);
   convertView.setTag(viewHolder);
  } else {
   viewHolder = (TimeLineHolder) convertView.getTag();
  }
   
  String titleStr = list.get(position).get("title").toString();
   
  
  viewHolder.title.setText(titleStr);
 
  return convertView;
   
 }
  
 static class TimeLineHolder{
  private TextView title,time;
 }
}

每一个item的布局:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?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:orientation="vertical" >
  
  <View
  android:id="@+id/view_0"
  android:layout_width="1dp"
  android:layout_height="25dp"
  android:layout_below="@+id/layout_1"
  android:layout_marginLeft="40dp"
  android:background="#A6A6A6" />
 <ImageView
  android:id="@+id/image"
  android:layout_width="15dp"
  android:layout_height="15dp"
  android:layout_below="@+id/view_0"
  android:layout_marginLeft="33dp"
  android:src="@drawable/timeline_green" />
 <View
  android:id="@+id/view_2"
  android:layout_width="1dp"
  android:layout_height="50dp"
  android:layout_below="@+id/image"
  android:layout_marginLeft="40dp"
  android:background="#A6A6A6" />
  
 <View
  android:id="@+id/view_4"
  android:layout_width="match_parent"
  android:layout_height="1dp"
  android:layout_alignBottom="@+id/view_2"
  android:layout_marginLeft="55dp"
  android:layout_marginRight="15dp"
  android:background="#A6A6A6" />
  
  <RelativeLayout
  android:id="@+id/relative"
  android:layout_width="fill_parent"
  android:layout_height="match_parent"
  android:layout_margin="10dp"
  android:layout_toRightOf="@+id/view_0"
  android:layout_alignBottom="@+id/view_4"
  android:padding="5dp"
  android:orientation="vertical" >
 
  <TextView
   android:id="@+id/title"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:ellipsize="end"
   android:layout_marginTop="8dp"
   android:maxEms="7"
   android:paddingLeft="5dp"
   android:singleLine="true"
   android:text="需求提交成功"
   android:textSize="16sp" />
  <TextView
   android:id="@+id/time"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:ellipsize="end"
   android:layout_below="@+id/title"
   android:layout_marginTop="15dp"
   android:maxEms="7"
   android:paddingLeft="5dp"
   android:singleLine="true"
   android:text="2015-9-28"
   android:textSize="14sp" />
 
 </RelativeLayout>
 
</RelativeLayout>

其实这个东西看起来复杂,实际上挺简单的,就是一个ListView,希望对大家有帮助!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/sinat_16458039/article/details/49617553