Android仿快递 物流时间轴 的代码实现

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

xml:代码

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

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

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

Adapter:

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

每一个item的布局:

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

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

时间: 2024-12-12 16:55:42

Android仿快递 物流时间轴 的代码实现的相关文章

Android 类似时间轴的实现

想要实现图片中的的时间轴的效果,设定了三种颜色,但是出来的只有一个黑色,还不是设定好的,而且长度很长的话不能滚动,下面上代码: 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android

Android时间轴效果,直接使用在你的项目中

近期开发app搞到历史查询,受腾讯qq的启示,搞一个具有时间轴效果的ui,看上去还能够,然后立即想到分享给小伙伴,,大家一起来看看,先上效果图吧 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 接下来就是代码了,axtivity的布局代码.非常easy.就是一个listview <?xml v

物流状态的时间轴

1.wxml代码: <view class='g_con'> <view class='topExpress'> <view class='topExpress-left'> <image src='/images/Exchange_goods_map_1.png' style='width:60rpx;height:60rpx;border-radius:50%;'></image> </view> <view class='

Android自定义View实现垂直时间轴布局

时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴,想必大家都不陌生,如下图: 分析 实现这个最常用的一个方法就是用ListView,我这里用继承LinearLayout的方式来实现.首先定义了一些自定义属性: attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-stylea

Android 时间轴

效果图: 数据是随便填的,显得有点乱,但是不影响效果.实现方面主要是用ListView来实现,主要是根据ListView的item位置与上一条数据进行比较,来控制时间的显示隐藏效果.思路很简单,下面看代码实现: 首先是页面的整体布局,很简单,就一个ListView: res/layout/activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

android 简易时间轴(实质是ListView)

ListView的应用 1.在很多时候是要用到时间轴的,有些处理的时间轴比较复杂,这里就给出一个比较简单的时间轴,其实就是ListView里面的Item的设计. 直接上代码: ListView,item的xml文件-->time_item.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.andro

Android实现时间轴

昨天群里有讨论时间轴的项目,没有接触过,以为很吊,研究之后才知道表面都是忽悠人的,使用listview就能实现了,也没有什么新鲜的东西 废话少说,直接上图 图片和文字都可以私人订制 没什么好说的,直接上代码吧!相信你能看懂 1.时间轴item的布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.c

android项目之时间轴(转载)

转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/38279317 最近开发的app中要用到时间轴这东西,需要实现的效果如下: 想想这个东西应该可以用listview实现吧.然后最近就模拟着去写了: 首先写  listview的item的布局: listview_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLay

基于jquery带时间轴的图片轮播切换代码

基于jquery图片标题随小圆点放大切换.这是是一款带时间轴的图片轮播切换代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="decoroll2" class="imgfocus"> <div id="decoimg_a2" class="imgbox"> <div class="decoimg_b2"> <a href=&q