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,希望对大家有帮助!

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

以上是 Android实现快递物流时间轴效果 的全部内容, 来源链接: utcz.com/p/240521.html

回到顶部