Android中时间轴显示

原理:listview显示

前提:

根据项目需求,需要利用时间轴,垂直显示当前进度

于是:

主界面的布局文件

    <ListView

        android:id="@+id/lv"

        android:paddingTop="15dp"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:divider="#00000000" >

    </ListView>

每一个条目的布局文件    用到了两张图片    大点24    小卡12

<?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="wrap_content"

     >


    <ImageView

        android:id="@+id/iv_small"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="54dp"

        android:contentDescription="@string/app_name"

        android:src="@drawable/jin_du_tiao_round_small" />


    <View

        android:id="@+id/view_line_normal"

        android:layout_width="2dp"

        android:layout_height="68dp"

        android:layout_below="@+id/iv_small"

        android:layout_marginLeft="57dp"

        android:background="@color/line" />


    <ImageView

        android:id="@+id/iv_big"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="50dp"

        android:contentDescription="@string/app_name"

        android:src="@drawable/jin_du_tiao_round_big" />


    <TextView

        android:id="@+id/tv_show"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="45dp"

        android:textColor="@color/btn_bg"

        android:layout_toRightOf="@id/iv_small"

        android:padding="3dp"

        android:text="模拟显示数据"

        android:textSize="12sp" />


    <View

        android:id="@+id/view_line"

        android:layout_width="match_parent"

        android:layout_height="1dp"

        android:layout_below="@id/tv_show"

        android:layout_marginLeft="91dp"

        android:layout_marginTop="30dp"

        android:background="@color/line" />


</RelativeLayout>


listview的adapter    在最后隐藏线&下划线&显示最大的点

public class MyTimeAdapter extends BaseAdapter {


private List<String> lists;

private Context context;


public MyTimeAdapter(Context context, List<String> getlists) {

this.context = context;

this.lists = getlists;

}


@Override

public int getCount() {

return lists.size();

}


@Override

public Object getItem(int position) {

return lists.get(position);

}


@Override

public long getItemId(int position) {

return position;

}


@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder vh;

if (convertView == null) {

vh = new ViewHolder();

convertView = LayoutInflater.from(context).inflate(

条目的布局文件, null);

vh.vh_tv_show = (TextView) convertView.findViewById(R.id.tv_show);

vh.view_line_normal = convertView

.findViewById(R.id.view_line_normal);

vh.iv_point_big = (ImageView) convertView.findViewById(R.id.iv_big);

vh.view_line = convertView.findViewById(R.id.view_line);

vh.vh_tv_show.setText(lists.get(position).toString());

convertView.setTag(vh);


} else {

vh = (ViewHolder) convertView.getTag();

}

if (position == lists.size() - 1) {

vh.view_line_normal.setVisibility(View.INVISIBLE);

vh.iv_point_big.setVisibility(View.VISIBLE);

vh.view_line.setVisibility(View.GONE);

} else {

vh.iv_point_big.setVisibility(View.GONE);

vh.view_line_normal.setVisibility(View.VISIBLE);

vh.view_line.setVisibility(View.VISIBLE);

}

return convertView;

}


private class ViewHolder {

private TextView vh_tv_show;

private View view_line_normal;

private ImageView iv_point_big;

private View view_line;

}


}


主程序调用    传入list集合

private MyTimeAdapter adapter;
private List<String> lists;
private Context context;

。。。

context = this;

。。。

adapter = new MyTimeAdapter(context,

getlists());

lv.setAdapter(adapter);

主程序中造假数据 随机产生1~10中的任意数进行显示

private int random;

public List<String> getlists() {
List<String> lists = new ArrayList<String>();
random = (int) (Math.random() * 10 + 1);
for (int i = 0; i < random; i++) {
lists.add("测试内容");
}
return lists;
}

用到的:

颜色

    <color name="line">#CCCCCC</color>

图片

jin_du_tiao_round_big

jin_du_tiao_round_small



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值