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,希望对大家有帮助!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
 赞 (0)
                        