标签:时间轴
遇到一需求做一个时间轴左边是时间,右边是内容,中间就是那个轴的图片,
?1.中间轴线的图片需要根据内容的多少被拉长;
?2.顶部的圆点图片的位置不能左右边内容的顶部;
?3.底部不要轴线以圆点ImageView结束;
分析:
问题?1:设置图片parent的parent为wrap_content,设置android:minHeight="100dp",设置parent为match_parent;设置轴线ImageView为match_parent
问题?2:在轴线ImageView上面添加一个View(view_head),设置适当的高度,使轴线ImageView被顶下去;在Adapter中position<1的时候设置
view_head为透明色 holder.view_head.setBackgroundColor(context.getResources().getColor(android.R.color.transparent));
问题?3:adapter中判断是否是最后一条数据来隐藏轴线
上代码:
1.item_result_his
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tvDate"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="@color/blue_deep"
android:textSize="@dimen/font18"
android:gravity="right"
android:padding="@dimen/h8"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="2"
android:minHeight="100dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/h16"
android:layout_marginRight="@dimen/h16"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<View
android:id="@+id/view_head"
android:layout_width="1dp"
android:layout_height="12dp"
android:background="@color/blue_deep" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/checkreport_timebase_circle"
android:layout_centerHorizontal="true"
/>
<ImageView
android:id="@+id/iv_line"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/checkreport_timebase_line"
/>
</LinearLayout>
<TextView
android:id="@+id/tvDoWhat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ewTeTextViewTextViTextViewTextViTextViewTextViTextViewTextVixtViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView"
android:textColor="@color/black"
android:textSize="@dimen/font18"
android:padding="@dimen/h8"/>
</LinearLayout>
</LinearLayout>
2.HistoryAdapter
package cn.szwx.app.business.adapter;
import java.util.ArrayList;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import cn.szwx.app.business.R;
import cn.szwx.app.business.entity.HistoryBean;
public class HistoryAdapter extends BaseAdapter{
private ArrayList<HistoryBean> list;
private Context context;
public HistoryAdapter(Context context,ArrayList<HistoryBean> list){
this.context=context;
this.list=list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public HistoryBean getItem(int arg0) {
return list.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if(convertView==null){
convertView=View.inflate(context, R.layout.item_result_his, null);
holder=new ViewHolder();
holder.tvDate=(TextView) convertView.findViewById(R.id.tvDate);
holder.tvDoWhat=(TextView) convertView.findViewById(R.id.tvDoWhat);
holder.view_head=(View) convertView.findViewById(R.id.view_head);
holder.iv_line=(ImageView) convertView.findViewById(R.id.iv_line);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
HistoryBean bean =list.get(arg0);
holder.tvDate.setText(bean.getDate());
holder.tvDoWhat.setText(bean.getRole()+bean.getWhatToDo());
//设置顶部View为透明色来控制顶部的显示
if(arg0<1){
//holder.view_head.setBackgroundColor(context.getResources().getColor(R.color.white));
holder.view_head.setBackgroundColor(context.getResources().getColor(android.R.color.transparent));
}else{
}
//控制底部的显示
if(list.size()>0){
if(arg0==list.size()-1){
holder.iv_line.setVisibility(View.GONE);
}else{
holder.iv_line.setVisibility(View.VISIBLE);
}
}
return convertView;
}
class ViewHolder{
TextView tvDate;
TextView tvDoWhat;
View view_head;
ImageView iv_line;
}
public void notifyDataSetChanged(ArrayList<HistoryBean> data) {
this.list=data;
notifyDataSetChanged();
}
}
3.调用:
HistoryBean bean2=new HistoryBean();
bean2.setDate("2015.1.1");
bean2.setWhatToDo("做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么"
+ "做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么"
+ "做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么做了什么");
bean2.setRole("什么角色");
list.add(bean2);
//设置Adapter
for (int i = 0; i <40; i++) {
HistoryBean bean=new HistoryBean();
bean.setDate("2015.1.1"+i);
bean.setWhatToDo("做了什么"+i);
bean.setRole("什么角色");
list.add(bean);
}
adapter=new HistoryAdapter(context, list);
rootView.setAdapter(adapter);
标签:时间轴
原文地址:http://blog.csdn.net/u013042707/article/details/45153845