1. 程式人生 > >Android仿快遞物流時間軸的程式碼實現

Android仿快遞物流時間軸的程式碼實現

首先,這篇參考了別人的程式碼。根據自己的專案需求簡單改造了一下,效果圖如下


xml:程式碼

<?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,準備資料就好了
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:
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的佈局:
<?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,希望對大家有幫助!