Android TimeLine 时间节点轴的实现
来源:互联网 发布:梦幻口袋版炼兽笼数据 编辑:程序博客网 时间:2024/05/30 05:41
效果图
具体实现 (RecyclerView)
1.Adapter
package com.haoren.timeline;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;/** * Created by Hh on 2017/3/8. */public class TimeLineAdapter extends RecyclerView.Adapter<TimeLineAdapter.HorizontalVh> { private Context context; //时间节点数 private int nodeNum = 0; //当前到达节点 private int currentNode = 1; public TimeLineAdapter(Context context, int nodeNum) { this.context = context; this.nodeNum = nodeNum; } @Override public HorizontalVh onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.time_line, null, false); HorizontalVh vh = new HorizontalVh(view); return vh; } @Override public void onBindViewHolder(HorizontalVh holder, int position) { if (position < currentNode) { //当前节点之前的全部设为已经经过 holder.point.setImageResource(R.mipmap.point_select); holder.lineLeft.setBackgroundResource(R.color.colorPrimary); holder.lineRight.setBackgroundResource(R.color.colorPrimary); } // 去掉左右两头的分支 if (position == 0) { holder.lineLeft.setVisibility(View.INVISIBLE); } if (position == nodeNum - 1) { holder.lineRight.setVisibility(View.INVISIBLE); } } @Override public int getItemCount() { return nodeNum; } /** * 设置当前节点 * @param currentNode */ public void setCurrentNode(int currentNode) { this.currentNode = currentNode; this.notifyDataSetChanged(); } class HorizontalVh extends RecyclerView.ViewHolder { private ImageView point; private View lineLeft, lineRight; public HorizontalVh(View itemView) { super(itemView); this.point = (ImageView) itemView.findViewById(R.id.point); this.lineLeft = itemView.findViewById(R.id.line_left); this.lineRight = itemView.findViewById(R.id.line_right); } }}
- item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="0dp" android:layout_weight="1" android:layout_height="50dp" android:gravity="center_horizontal" android:orientation="vertical"> <RelativeLayout android:layout_marginTop="20dp" android:layout_width="40dp" android:layout_height="wrap_content"> <View android:id="@+id/line_left" android:layout_width="20dp" android:layout_height="1dp" android:layout_centerVertical="true" android:background="#A6A6A6" /> <View android:id="@+id/line_right" android:layout_width="20dp" android:layout_height="1dp" android:layout_centerVertical="true" android:layout_toRightOf="@+id/line_left" android:background="#A6A6A6" /> <ImageView android:id="@+id/point" android:layout_width="15dp" android:layout_height="15dp" android:layout_centerHorizontal="true" android:scaleType="center" android:src="@mipmap/point_normal" /> </RelativeLayout> <TextView android:id="@+id/show_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="node" android:textSize="11sp" /></LinearLayout>
- MainActivity
package com.haoren.timeline;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.mRecyclerView); initAdapter(); } private void initAdapter() { TimeLineAdapter adapter = new TimeLineAdapter(this, 8); mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); mRecyclerView.setAdapter(adapter); adapter.setCurrentNode(5); }}
0 0
- Android TimeLine 时间节点轴的实现
- Android时间轴(Timeline)效果的实现
- Android时间轴(Timeline)效果的实现(使用RecyclerView)
- Android开发时间轴 TimeLine
- android时间轴(TimeLine)(recyclerView实现)
- Timeline可展开的时间轴ExpandableListView
- Timeline时间轴
- Android TimeLine 类时间戳,时间轴控件。
- 使用JavaFX时间轴(Timeline)编写的等待动画
- 针对时间轴TimeLine的一些js操作
- timeline,一个简单精美的自定义时间轴
- timeline一个简单精美的自定义时间轴
- jQuery制作Facebook Timeline(时间轴)
- Android使用Kotlin实现多节点进度条(时间轴)
- TimeLine -- Android 列表(ListView或者RecycleView)中时间线的效果
- echarts通过timeline时间轴改变图表的数据,解决X轴,series问题
- 【时间轴】推荐几款jQuery时间轴插件Timeline
- Android 时间轴的实现
- IDEA 安卓开发gradle sync failed问题
- CSDN截止目前为止有多少的博客专家以及比例人数?
- 手把手教你用Mysql-Cluster-7.5搭建数据库集群
- 火热网络框架Retrofit的介绍
- 类与对象
- Android TimeLine 时间节点轴的实现
- WebView详解
- python3 读写文件换行符
- C# 定时器
- js 清除浏览器缓存方法
- LeetCode 2. Add Two Numbers 题解
- jstl
- 常见网页状态码
- Merge Sorted Array