Android实现快递物流跟踪布局效果
程序员文章站
2023-11-21 08:27:40
先看效果
首页activity
public class traceactivity extends appcompatactivity {...
先看效果
首页activity
public class traceactivity extends appcompatactivity { private listview lvtrace; private list<trace> tracelist = new arraylist<>(10); private tracelistadapter adapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_trace); findview(); initdata(); } private void findview() { lvtrace = (listview) findviewbyid(r.id.lvtrace); } private void initdata() { // 模拟一些假的数据 tracelist.add(new trace("2016年11月18日 上午12:04:01", "在湖北武汉洪山区光谷公司长江社区便民服务站进行签收扫描,快件已被 已签收 签收")); tracelist.add(new trace("2016年11月18日 上午11:57:25", "在湖北武汉洪山区光谷公司长江社区便民服务站进行派件扫描;派送业务员:老王;联系电话:17786550311")); tracelist.add(new trace("2016年11月17日 下午4:43:29", "在湖北武汉洪山区光谷公司进行快件扫描,将发往:湖北武汉洪山区光谷公司长江社区便民服务站")); tracelist.add(new trace("2016年11月17日 上午9:11:21", "从湖北武汉分拨中心发出,本次转运目的地:湖北武汉洪山区光谷公司")); tracelist.add(new trace("2016年11月17日 上午1:53:14", "在湖南长沙分拨中心进行装车扫描,即将发往:湖北武汉分拨中心")); tracelist.add(new trace("2016年11月17日 上午1:50:18", "在分拨中心湖南长沙分拨中心进行称重扫描")); tracelist.add(new trace("2016年11月16日 上午11:27:58", "在湖南隆回县公司进行到件扫描")); adapter = new tracelistadapter(this, tracelist); lvtrace.setadapter(adapter); } }
然后适配器
public class tracelistadapter extends baseadapter { private context context; private list<trace> tracelist = new arraylist<>(1); private static final int type_top = 0x0000; private static final int type_normal= 0x0001; public tracelistadapter(context context, list<trace> tracelist) { this.context = context; this.tracelist = tracelist; } @override public int getcount() { return tracelist.size(); } @override public trace getitem(int position) { return tracelist.get(position); } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder; final trace trace = getitem(position); if (convertview != null) { holder = (viewholder) convertview.gettag(); } else { holder = new viewholder(); convertview = layoutinflater.from(context).inflate(r.layout.item_trace, parent, false); holder.tvaccepttime = (textview) convertview.findviewbyid(r.id.tvaccepttime); holder.tvacceptstation = (textview) convertview.findviewbyid(r.id.tvacceptstation); holder.tvtopline = (textview) convertview.findviewbyid(r.id.tvtopline); holder.tvdot = (textview) convertview.findviewbyid(r.id.tvdot); holder.tv_new = (textview) convertview.findviewbyid(r.id.tv_new); convertview.settag(holder); } if (getitemviewtype(position) == type_top) { // 第一行头的竖线不显示 holder.tvtopline.setvisibility(view.invisible); holder.tv_new.setvisibility(view.visible); // 字体颜色加深 holder.tvaccepttime.settextcolor(context.getresources().getcolor(r.color.red)); holder.tvacceptstation.settextcolor(context.getresources().getcolor(r.color.red)); holder.tvdot.setbackgroundresource(r.drawable.timelline_dot_secord); } else if (getitemviewtype(position) == type_normal) { holder.tvtopline.setvisibility(view.visible); holder.tv_new.setvisibility(view.invisible); holder.tvaccepttime.settextcolor(0xff999999); holder.tvacceptstation.settextcolor(0xff999999); holder.tvdot.setbackgroundresource(r.drawable.timelline_dot_first); } holder.tvaccepttime.settext(trace.getaccepttime()); holder.tvacceptstation.settext(trace.getacceptstation()); return convertview; } @override public int getitemviewtype(int id) { if (id == 0) { return type_top; } return type_normal; } static class viewholder { public textview tvaccepttime, tvacceptstation; public textview tvtopline, tvdot,tv_new; } }
实体类
public class trace { /** 时间 */ private string accepttime; /** 描述 */ private string acceptstation; public trace() { } public trace(string accepttime, string acceptstation) { this.accepttime = accepttime; this.acceptstation = acceptstation; } public string getaccepttime() { return accepttime; } public void setaccepttime(string accepttime) { this.accepttime = accepttime; } public string getacceptstation() { return acceptstation; } public void setacceptstation(string acceptstation) { this.acceptstation = acceptstation; } }
activity布局和item布局
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@android:color/white" tools:context="cc.duduhuo.timelinedemo.traceactivity"> <listview android:id="@+id/lvtrace" android:layout_width="match_parent" android:divider="@null" android:clickable="false" android:listselector="@android:color/transparent" android:dividerheight="0dp" android:layout_height="wrap_content" /> </linearlayout>
<?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:gravity="center" android:orientation="horizontal"> <relativelayout android:id="@+id/rltimeline" android:layout_width="75dp" android:layout_height="match_parent"> <textview android:id="@+id/tvtopline" android:layout_width="0.5dp" android:layout_height="12dp" android:layout_centerhorizontal="true" android:background="#999" /> <textview android:id="@+id/tvdot" android:layout_width="5dp" android:layout_height="5dp" android:layout_margin="2dp" android:layout_below="@id/tvtopline" android:layout_centerhorizontal="true" android:background="@drawable/timelline_dot_normal" /> <textview android:layout_width="0.5dp" android:layout_height="match_parent" android:layout_below="@id/tvdot" android:layout_centerhorizontal="true" android:background="#999" /> <textview android:id="@+id/tv_new" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="最新" android:textcolor="#ffffff" android:background="#ff0000" android:textsize="12sp" android:layout_marginleft="3dp" android:paddingleft="3dp" android:paddingright="3dp" android:layout_torightof="@id/tvdot" android:layout_below="@id/tvtopline" /> </relativelayout> <relativelayout android:id="@+id/rlcenter" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="6dp" android:paddingright="10dp" android:paddingleft="10dp" android:paddingtop="6dp"> <textview android:id="@+id/tvaccepttime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2014/06/24 20:55:28" android:textcolor="#999" android:textsize="12sp" /> <textview android:id="@+id/tvacceptstation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tvaccepttime" android:layout_margintop="5dp" android:text="在湖南隆回县公司进行到件扫描" android:textcolor="#999" android:textsize="12sp" /> </relativelayout> </linearlayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Math对象的方法解析