android 模仿快递的时间轴
来源:互联网 发布:不用手机号注册淘宝 编辑:程序博客网 时间:2024/04/28 01:58
先看样子图片
看着挺难的其实就是个ListView,很简单的。
activity的布局time_rollera_ctivity.xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".activity.TimeRollerActivity"> <ListView android:id="@+id/timeRollerlist" android:layout_width="fill_parent" android:layout_height="wrap_content" /></RelativeLayout>
ListView的适配器TimelineAdapter:
package dadaapp.student.dadaxueche.com.zumeng.adapter;import java.util.List;import java.util.Map;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import dadaapp.student.dadaxueche.com.zumeng.R;public class TimelineAdapter extends BaseAdapter { private Context context; private List<Map<String, Object>> timelist; private List<Map<String, Object>> titlelist; private LayoutInflater inflater; public TimelineAdapter(Context context, List<Map<String, Object>> timelist, List<Map<String, Object>> titlelist) { this.context = context; this.timelist = timelist; this.titlelist = titlelist; } @Override public int getCount() { return titlelist.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView == null) { inflater = LayoutInflater.from(parent.getContext()); convertView = inflater.inflate(R.layout.timeroller_item, null); viewHolder = new ViewHolder(); viewHolder.title = (TextView) convertView.findViewById(R.id.title); viewHolder.show_time = (TextView) convertView.findViewById(R.id.show_time); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } String timeStr = timelist.get(position).get("show_time").toString(); String titleStr = titlelist.get(position).get("title").toString(); viewHolder.show_time.setText(timeStr); viewHolder.title.setText(titleStr); return convertView; } static class ViewHolder { public TextView year; public TextView month; public TextView title; public TextView show_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:background="#ffffff" android:orientation="vertical" android:paddingRight="20dp"> <View android:id="@+id/view_0" android:layout_width="1dp" android:layout_height="25dp" android:layout_marginLeft="71dp" android:background="#A6A6A6" /> <View android:id="@+id/view_1" android:layout_width="1dp" android:layout_height="25dp" android:layout_marginLeft="71dp" android:background="#A6A6A6" /> <TextView android:id="@+id/show_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/view_1" android:layout_marginLeft="10dp" android:text="测试数据" android:textSize="12dp" /> <ImageView android:id="@+id/image" android:layout_width="15dp" android:layout_height="15dp" android:layout_below="@+id/view_1" android:layout_marginLeft="65dp" android:src="@mipmap/timeline_green" /> <View android:id="@+id/view_2" android:layout_width="1dp" android:layout_height="100dp" android:layout_below="@+id/image" android:layout_marginLeft="71dp" android:background="#A6A6A6" /> <RelativeLayout android:id="@+id/relative" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/image" android:layout_marginTop="-30dp" android:layout_toRightOf="@+id/image" android:background="@drawable/timeline_content" android:padding="10dp"> <ImageView android:id="@+id/image_1" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:src="@mipmap/bg_green_circle_smic" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:ellipsize="end" android:maxEms="7" android:paddingLeft="5dp" android:singleLine="true" android:text="测试数据" android:textSize="12sp" /> </RelativeLayout></RelativeLayout>注意item的背景图片是.9的格式。
主的Activity:
package dadaapp.student.dadaxueche.com.zumeng.activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import dadaapp.student.dadaxueche.com.zumeng.R;import dadaapp.student.dadaxueche.com.zumeng.adapter.TimelineAdapter;public class TimeRollerActivity extends AppCompatActivity { private ListView timeRollerlist; private TimelineAdapter timelineAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.time_rollera_ctivity); init(); } private void init() { timeRollerlist = (ListView) findViewById(R.id.timeRollerlist); timeRollerlist.setDividerHeight(0); timelineAdapter = new TimelineAdapter(this, gettimeData(), gettitleData()); timeRollerlist.setAdapter(timelineAdapter); timeRollerlist.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String title = gettitleData().get(position).get("title").toString(); Toast.makeText(TimeRollerActivity.this, title, Toast.LENGTH_SHORT).show(); } }); } private List<Map<String, Object>> gettimeData() { List<Map<String, Object>> list = new ArrayList<>(); for (int i = 0; i < 20; i++) { Map<String, Object> map = new HashMap<>(); map.put("show_time", "5月" + i + "号"); list.add(map); } return list; } private List<Map<String, Object>> gettitleData() { List<Map<String, Object>> list = new ArrayList<>(); for (int i = 0; i < 20; i++) { Map<String, Object> map = new HashMap<>(); map.put("title", "这是第" + i + "行测试数据"); list.add(map); } return list; }}
这就是全部的代码了,样式你可以根据自己项目的需求自己定义,也可以加载不同的item。剩下的你们自己完善吧。
0 0
- android 模仿快递的时间轴
- Android仿快递物流时间轴的代码实现
- 快递物流时间轴
- Android自定义View之ListView实现时间轴效果:我只是个送快递的。
- 模仿快递打车倒计时
- 自定义view,仿淘宝快递的物流信息的时间轴
- Android的快递入门(Eclipse)入门介绍
- Android 模仿某宝淘抢购的 Android进度条
- Android快递轨迹查询 “KD快递查询”
- Android快递单号查询快递状态信息
- Android 快递接口
- android,快递查询,笔记
- android快递跟踪进度条
- [Android]快递查询——API的简单应用
- android 模仿书的翻页(附带源码)
- android模仿微信的链接
- Android 模仿搜狐新闻的ViewpagerIndicator
- Android 模仿android5上的Reveal实现
- IntentService
- ubuntu分辨率不能调整的问题
- POJ-1151-Atlantis-求矩形面积并(线段树+扫描线)
- struts2返回json数据 ——不使用json插件
- Two Sum
- android 模仿快递的时间轴
- 【Linux开发】Linux模块机制浅析
- DOS命令温习(图解)
- 【Swift】上传图片-NSURLSession
- LeetCode 79: Word Search
- Unity3D 基地实现(摄像机移动、拖动建筑等)
- 验证码设计中常见的安全问题
- Maven常用命令 - 构建反应堆中指定模块
- 查询:对某一字段去重,并获得其他字段信息