1. 思路介绍

效果图:

思路:

就一个ListView,每个item就是一条物流信息。然后每个item,分为左和右两边,左边是一个进度条的风格,右边是物流文字,适配器里面判断item,position为0 就设置为绿色,其他position就设置为灰色就行了。

2. 代码

item的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><!-- 左边 --><LinearLayout
        android:layout_width="wrap_content"android:layout_height="match_parent"android:orientation="vertical"><!-- 上面的竖线 --><View
            android:id="@+id/view_top_line"android:layout_width="2dp"android:layout_height="15dp"android:background="@color/lightgray"android:layout_gravity="center_horizontal"android:layout_marginTop="-1dp"/><!-- 圆点 --><ImageView
            android:id="@+id/iv_expres_spot"android:layout_width="20dp"android:layout_height="20dp"android:background="@drawable/express_point_old"android:layout_marginBottom="2dp"android:layout_marginTop="2dp"/><!-- 竖线 --><View
            android:layout_width="2dp"android:layout_height="wrap_content"android:background="@color/lightgray"android:layout_gravity="center_horizontal"/></LinearLayout><!-- 右边 --><LinearLayout
        android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"android:orientation="vertical"android:layout_marginLeft="10dp"android:layout_marginTop="17dp"><TextView
            android:id="@+id/tv_express_text"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="asdfasdfasd大事发生的苏打粉asdfasdfas阿斯蒂芬斯蒂芬阿萨德发达省份撒旦法"android:textColor="@color/gray"android:lineSpacingExtra="2dp"android:textSize="16sp"android:textIsSelectable="true"/><TextView
            android:id="@+id/tv_express_time"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="@color/lightgray"android:textSize="12sp"android:text="2016年4月27日 00:27:45"android:layout_marginTop="5dp"android:textIsSelectable="true"android:paddingBottom="10dp"/><!-- 底部分割线 --><View
            android:layout_width="match_parent"android:background="@color/lightgray"android:layout_height="0.5dp"/></LinearLayout></LinearLayout>

适配器代码

package com.tpnet.hlquery.Express;import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.tpnet.hlquery.Express.json.Content;
import com.tpnet.hlquery.R;import java.util.List;/*** Created by tpnet on 2016/4/27.*/
public class MessListAdapter extends BaseAdapter {//allContent就是所有物流信息的listprivate List<Content> allContent;private Context context;private LayoutInflater layoutInflater;MessListAdapter(Context context,List<Content> allContent){this.allContent = allContent;this.context = context;layoutInflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return allContent.size();}@Overridepublic Object getItem(int position) {return allContent.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if(convertView == null){holder = new ViewHolder();convertView = layoutInflater.inflate(R.layout.item_express_data,null);holder.viewTopLine = convertView.findViewById(R.id.view_top_line);holder.ivExpresSpot = (ImageView) convertView.findViewById(R.id.iv_expres_spot);holder.tvExpressText = (TextView) convertView.findViewById(R.id.tv_express_text);holder.tvExpressTime = (TextView) convertView.findViewById(R.id.tv_express_time);//将ViewHolder与convertView进行绑定convertView.setTag(holder);}else{holder = (ViewHolder)convertView.getTag();}Content content = allContent.get(position);//设置数据颜色,防止view 复用,必须每个设置if(position == 0 ){  //上顶部背景透明,点是灰色,字体是绿色holder.viewTopLine.setBackgroundColor(Color.TRANSPARENT);holder.ivExpresSpot.setBackgroundResource(R.drawable.express_point_new);holder.tvExpressText.setTextColor(context.getResources().getColor(R.color.mainColor));holder.tvExpressTime.setTextColor(context.getResources().getColor(R.color.mainColor));}else{holder.viewTopLine.setBackgroundColor(context.getResources().getColor(R.color.lightgray));holder.ivExpresSpot.setBackgroundResource(R.drawable.express_point_old);holder.tvExpressText.setTextColor(context.getResources().getColor(R.color.gray));holder.tvExpressTime.setTextColor(context.getResources().getColor(R.color.lightgray));}holder.tvExpressText.setText(content.getContext());holder.tvExpressTime.setText(content.getTime());return convertView;}public class ViewHolder{public View viewTopLine;private ImageView ivExpresSpot;private TextView tvExpressText;private TextView tvExpressTime;}}

activity那里就new 上面的Adapter,然后设置进ListView 就可以了。

注意一点:

listView一定要设置:android:divider=”@null”
不然每个item直接默认是有 间隙的。
就这么简单了,重要的还是item的布局

dmeo:http://blog.csdn.net/niubitianping/article/details/51418259

[安卓开发] 快递物流信息布局相关推荐

  1. 安卓开发 根据view布局动态生成带文字头像

    根据view布局动态生成带文字头像 现在很多软件在没设置头像的时候都会根据用户的名字生产一个头像展示,类似钉钉,下面就看看在安卓里面如何做到这样的效果吧. 可能下面方法不是最佳,但是思路应该没问题. ...

  2. android自定义模态框,安卓开发自定义弹出框的简单方式(纯代码布局)

    弹出框在安卓开发中是经常会用到的,如果单纯的只是用安卓自带的对话框模式肯定是十分单调的. 再来我看来安卓一定有一个功能让我们像Layout添加Layout一样把Layout添加到提示框里面. 所以忘了 ...

  3. 安卓开发中的占位符在布局XML中使用

    安卓开发中的占位符在布局XML中使用 刚开始学Android,实现用户注册登录功能EditText使用占位符. == 普通的英文半角空格   ==   ==   == no-break space ( ...

  4. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  5. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  6. 安卓开发屏幕分辨率尺寸适配问题【原创】

    2019独角兽企业重金招聘Python工程师标准>>> 屏幕分辨率尺寸适配是安卓开发中的难题之一,我开发中的解决办法是: 1.多使用相对布局,即RelativeLayout,或者Li ...

  7. 《安卓开发必知的50个技巧》读书笔记

    记录一下看<安卓开发必知的50个技巧>认为实用的一下技巧. include标签使用注意事项 假设想在标签中覆盖被包括布局所指定的不论什么android:layout_*属性,必须在标签中同 ...

  8. 14天学会安卓开发(附PDF文档和全部示例代码)

    前言: 本人也是菜鸟,老鸟看了此文有哪里不好之处敬请指点,本书是根据<<Android应用开发揭秘>>攒写的,如何把一本书读薄,是一件值得思考的问题.相信看过那本书的都知道有5 ...

  9. android不能在主线程,安卓开发:主线程真的不能做UI操作吗?这一点很多程序员都没想到...

    只要参与过安卓项目开发一两年的朋友们应该清楚,为了避免UI渲染出现异常安卓框架限制UI操作只能在主线程中进行,如果贸然在子线程做了UI操作结果会怎样?我们随便写下了如下测试代码. 不出意外的话,代码执 ...

最新文章

  1. jhipster创建项目问答汇总_[恭喜JHipster社区喜提 VueJS !]
  2. 哪个版本python适用于windows-何种版本的Python适合您
  3. 都已经十岁的 Apache Dubbo,还能再乘风破浪吗?
  4. mysql Communications link failure druid
  5. 求组合数的算法 java,求一个整数的组合数算法(java)
  6. bash shell函数中返回任意值的四种方法
  7. 【Python CheckiO 题解】Easy Unpack
  8. html 进入效果,用css3实现简单的进入效果
  9. MySQL是怎样运行的(实体书扫描+掘金小册)免费下载
  10. python 串口助手 简书_pySerial 串口工具简介
  11. 计算机上数字代表那个音符,音乐简谱中数字上的点表示什么,别说你不知道哦 ^-^...
  12. PAT 乙级 1068 万绿丛中一点红 (20分)
  13. Python中的数学函数
  14. PetaLiunx配置时sourcing bitbake报错解决方法
  15. 中国移动灵犀云语音识别及合成SDK(iOS)使用指南
  16. 用例图、类图、状态图、活动图、顺序图、协作图
  17. 燕十八 Mysql 笔记 68 课
  18. manifest.json
  19. 第二阶段--团队冲刺--第十天
  20. Java多线程读取文件

热门文章

  1. 墙面有几种装修方法_装修时墙面处理都有哪几种方式?
  2. 《VS如何解决Cannot find or open the PDB file问题》
  3. MySQL记录的创建时间和修改时间
  4. 模拟不同系统不同浏览器
  5. 苹果手机怎么清除缓存_手机里的文件如何彻底删除?教你清除缓存的方法
  6. PWN-CTF:gef工具安装
  7. SEO文章图片添加水印,批量SEO文章图片去除水印
  8. 2.4G无线鼠标 PK 蓝牙鼠标
  9. SAP High Avaliability offering
  10. IT 行业中Dev、RD、CPO、TeamLeader、QA、PM、PO ,HC,TL 分别是什么的简称,他们分别对应的职责是什么?