最近开发的app中要用到时间轴这东西,需要实现的效果如下:


想想这个东西应该可以用listview实现吧。然后最近就模拟着去写了:

首先写  listview的item的布局: 

listview_item.xml

<?xml version="1.0" encoding="utf-8"?>                                            

接下来就是写listview的adapter了:

TimelineAdapter.java

package com.example.timelinetext.test;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;public class TimelineAdapter extends BaseAdapter {private Context context;private List> list;private LayoutInflater inflater;public TimelineAdapter(Context context, List> list) {super();this.context = context;this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder = null;if (convertView == null) {inflater = LayoutInflater.from(parent.getContext());convertView = inflater.inflate(R.layout.listview_item, null);viewHolder = new ViewHolder();viewHolder.title = (TextView) convertView.findViewById(R.id.title);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}String titleStr = list.get(position).get("title").toString();viewHolder.title.setText(titleStr);return convertView;}static class ViewHolder {public TextView year;public TextView month;public TextView title;}}


最后使用:

MainActivity.java

package com.example.timelinetext.test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;public class MainActivity extends Activity {private ListView listView;List data ;private TimelineAdapter timelineAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_listview);listView = (ListView) this.findViewById(R.id.listview);listView.setDividerHeight(0);timelineAdapter = new TimelineAdapter(this, getData());listView.setAdapter(timelineAdapter);}private List> getData() {List> list = new ArrayList>();Map map = new HashMap();map.put("title", "这是第1行测试数据");list.add(map);map = new HashMap();map.put("title", "这是第2行测试数据");list.add(map);map = new HashMap();map.put("title", "这是第3行测试数据");list.add(map);map = new HashMap();map.put("title", "这是第4行测试数据");list.add(map);return list;}}

运行效果如图:




所以模拟着去写一个时间轴,并不是什么复杂的事情,不要被UI设计的图片吓到,其实他就是一个普通的listview而已。



源码下载


更多相关文章

  1. Android插件—H.A.X.M(硬件加速执行管理器)
  2. Android(安卓)EditText.setError() - 会弹出一个popupwindow,效果
  3. Android(安卓)开源框架ActionBarSherlock 和 ViewPager 仿网易新
  4. Android:阴影效果的另一种实现方法:layer-list
  5. Android(安卓)Studio 启动安卓模拟器时,报VT-x is disabled in BI
  6. [Android]ViewSwitcher使用范例
  7. Android_DDMS快速入门
  8. Android(安卓)-- RecyclerView实现顶部吸附效果
  9. DDMS

随机推荐

  1. Android模仿微信加号菜单模式
  2. [置顶] Android中inflate方法的用法
  3. android入门级开发笔记
  4. Android添加appcompat_v7包
  5. Android(安卓)实现蓝牙录音
  6. android http post调用webservice
  7. Android(安卓)Accessibility(辅助功能) 学
  8. Android学习笔记-Android应用程序初步认
  9. Android(安卓)NDK调用Java方法
  10. 微信的研究及sppeex库的使用(整理)