Android 类似时间轴的实现
想要实现图片中的的时间轴的效果,设定了三种颜色,但是出来的只有一个黑色,还不是设定好的,而且长度很长的话不能滚动,下面上代码:
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"> <LinearLayout
android:id="@+id/trjectory_today_rl1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
类文件,时间段是从服务器获取的,多少和大小都是不确定的
主要代码:
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case :
if (trajectory2 != null) {
if (trajectory2.getResponseCode().equals("")) {
progressDialog.dismiss();
if (trajectory2.getSegmentNum() != ) {
thefirsttime = trajectory2.getList().get()
.get("BeginTime");// 第一个时间段的开始时间,用作参照物
Y=new int[trajectory2.getSegmentNum()];
X=new int[trajectory2.getSegmentNum()];
high=new int[trajectory2.getSegmentNum()];
color=new int[trajectory2.getSegmentNum()];
for (int i = ; i < trajectory2.getList().size(); i++) {
name = trajectory2.getList().get(i).get("Name");
begintime = trajectory2.getList().get(i)
.get("BeginTime");
int begin = TimeToInt(begintime);//将阶段开始时间换算为分钟,计算坐标
endtime = trajectory2.getList().get(i)
.get("EndTime");
int end = TimeToInt(endtime);
high = end - begin;// 矩形的高度
Y = begin - TimeToInt(thefirsttime);// 获得矩形的开始的Y轴坐标,最初是0
if (name.equals("觉醒")) {
color = R.color.red;
X = width / ;// 矩形的轴心的坐标
} else if (name.equals("浅睡")) {
color = R.color.lightblue;
X = width / ;
// r1.addView(rectview);
} else if (name.equals("深度睡眠")) {
color = R.color.green;
X = width / + ;
} else {
color = R.color.lightgray;
X = width / ;
}
}
rectview=new RectView(getActivity(),X,Y,high,color);
r1.addView(rectview);
} else {
progressDialog.dismiss();
showDialog("提示", "今天没有睡眠信息...");
}
} else {
progressDialog.dismiss();
showDialog("提示", trajectory2.getResponseDesc());
}
} else {
progressDialog.dismiss();
showDialog("提示", "获取数据失败...");
}
break;
}
}
};
下面上画图的类:
热搜: 二维码 定时器 手电筒 滑块 斗地主 书架 定位 买手机 聊天 游戏开发 游戏 股票查询 机顶盒 通话记录 二维码扫描 振动器 listview fragment 音乐播放器 播放器
eoe 移动开发者论坛»社区 › Android开发交流 › Android开发问答 › 类似时间轴的实现
/ 页下一页
返回列表 发新帖回复
查看: |回复: 打印 上一主题 下一主题
收起左侧
[Android界面] 类似时间轴的实现
[复制链接] yalongy58 主题 帖子 e币 发消息 电梯直达 跳转到指定楼层
楼主
发表于 -- :: | 只看该作者 |只看大图 回帖奖励
0基础的你+1张学习路径图+3个月粮饷+9阶段系统学习=Android开发大拿
10e币
想要实现图片中的的世间轴的效果,设定了三种颜色,但是出来的只有一个黑色,还不是设定好的,而且长度很长的话不能滚动,下面上代码:布局文件:
[mw_shl_code=java,true]<?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="wrap_content"
android:orientation="vertical"> <LinearLayout
android:id="@+id/trjectory_today_rl1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>[/mw_shl_code] 类文件,时间段是从服务器获取的,多少和大小都是不确定的
主要代码:
[mw_shl_code=java,true]private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case :
if (trajectory2 != null) {
if (trajectory2.getResponseCode().equals("")) {
progressDialog.dismiss();
if (trajectory2.getSegmentNum() != ) {
thefirsttime = trajectory2.getList().get()
.get("BeginTime");// 第一个时间段的开始时间,用作参照物
Y=new int[trajectory2.getSegmentNum()];
X=new int[trajectory2.getSegmentNum()];
high=new int[trajectory2.getSegmentNum()];
color=new int[trajectory2.getSegmentNum()]; for (int i = ; i < trajectory2.getList().size(); i++) {
name = trajectory2.getList().get(i).get("Name");
begintime = trajectory2.getList().get(i)
.get("BeginTime");
int begin = TimeToInt(begintime);//将阶段开始时间换算为分钟,计算坐标
endtime = trajectory2.getList().get(i)
.get("EndTime");
int end = TimeToInt(endtime);
high = end - begin;// 矩形的高度
Y = begin - TimeToInt(thefirsttime);// 获得矩形的开始的Y轴坐标,最初是0 if (name.equals("觉醒")) {
color = R.color.red;
X = width / ;// 矩形的轴心的坐标
} else if (name.equals("浅睡")) {
color = R.color.lightblue;
X = width / ; // r1.addView(rectview);
} else if (name.equals("深度睡眠")) {
color = R.color.green;
X = width / + ;
} else {
color = R.color.lightgray;
X = width / ;
}
}
rectview=new RectView(getActivity(),X,Y,high,color);
r1.addView(rectview); } else {
progressDialog.dismiss();
showDialog("提示", "今天没有睡眠信息...");
} } else {
progressDialog.dismiss();
showDialog("提示", trajectory2.getResponseDesc());
} } else {
progressDialog.dismiss();
showDialog("提示", "获取数据失败...");
}
break;
}
} };
[/mw_shl_code] 下面上画图的类:
[mw_shl_code=java,true]package com.ban.chart; import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View; public class RectView extends View {
private int[] width;//矩形的轴心的坐标
private int[] height;//矩形的高度
private int[] top;//矩形的顶部坐标
private int[] bottom;//矩形底部坐标 private Chart chart;
private Paint paint;
private int[] color; public RectView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
} public RectView(Context context) {
super(context);
// TODO Auto-generated constructor stub
} public RectView(Context context, int[] X,int[] Y,int[] high,int[] color) {
super(context);
this.width=X;//矩形轴心坐标
this.height=high;//矩形高度
this.top=Y;//矩形顶部坐标
this.color=color;
bottom=new int[height.length];
// bottom=top+height;//矩形底部坐标
paint = new Paint();
paint.setAntiAlias(true);
}
// 画柱状图
public void drawChart(Canvas canvas){
for(int i=;i<height.length;i++){
bottom=(top+)+height*;
paint.setColor(color);
canvas.drawRect(width-, top+, width+, bottom, paint) ; } // canvas.drawRect(width-5, top, width+5, bottom, paint) ;
}
@Override
public void onDraw(Canvas canvas){
canvas.drawColor(Color.WHITE);
drawChart(canvas);
invalidate();
}
}
图片:

Android 类似时间轴的实现的更多相关文章
- android 简易时间轴(实质是ListView)
ListView的应用 1.在很多时候是要用到时间轴的,有些处理的时间轴比较复杂,这里就给出一个比较简单的时间轴,其实就是ListView里面的Item的设计. 直接上代码: ListView,ite ...
- Android实现时间轴
昨天群里有讨论时间轴的项目,没有接触过,以为非常吊,研究之后才知道表面都是忽悠人的,使用listview就能实现了,也没有什么新奇的东西 废话少说,直接上图 图片和文字都能够私人订制 没什么好说的,直 ...
- Android 时间轴
最近开发的app中要用到时间轴这东西,需要实现的效果如下: 想想这个东西应该可以用listview实现吧.然后最近就模拟着去写了: 首先写 listview的item的布局: listview_it ...
- Android自定义指示器时间轴
指示器时间轴在外卖.购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现. 在Activity关联的布局文件activit ...
- Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果!
Android实训案例(三)--实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果! 感叹离春节将至,也同时感叹时间不等人,一年又一年,可是我依然是android道路上的小菜鸟,这篇讲 ...
- Android 时间轴的实现
时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴(如图),想必大家都不陌生. 时间轴的初探 初次见到这种UI,感觉整个布局 ...
- android项目解刨之时间轴
近期开发的app中要用到时间轴这东西.须要实现的效果例如以下: 想想这个东西应该能够用listview实现吧. 然后近期就模拟着去写了: 首先写 listview的item的布局: listview ...
- Android时间轴效果,直接使用在你的项目中
近期开发app搞到历史查询,受腾讯qq的启示,搞一个具有时间轴效果的ui,看上去还能够,然后立即想到分享给小伙伴,,大家一起来看看,先上效果图吧 watermark/2/text/aHR0cDovL2 ...
- JQuery+HTML5+CSS3制作时间轴插件,支持响应式布局
一.效果图预览 (图一) (图二) 附注说明: 图一是浏览器宽度像素大于560px下的展示效果,图二是在浏览器宽度像素小于560px下的展现效果.使用的是CSS3的Media Query(媒体查询)实 ...
随机推荐
- 【Web学习日记】——在IIS上发布一个WebService
没有开发过程,只是发布过程 一.前提 开发使用的是VS2013 从来没有做过Web的发布,在网上找例子,看到的总是与自己的情况不相符,而且也有人提出了VS2013发布网站的问题,但解决方案却很少,好不 ...
- 浅谈 WPF控件
首先我们必须知道在WPF中,控件通常被描述为和用户交互的元素,也就是能够接收焦点并响应键盘.鼠标输入的元素.我们可以把控件想象成一个容器,容器里装的东西就是它的内容.控件的内容可以是数据,也可以是控件 ...
- STM32 ucosii 串口接收数据 遇到的问题及解决思路
写一个程序,用到了ucos ii ,串口在中断中接收数据(一包数据 8个字节 包含: 1byte包头 5byte数据 1byte校验和 1byte 包尾 ) ,数据由上位机每隔500ms发送一次,在串 ...
- Eclipse 常用插件
/* ===================== Eclipse Color Theme 语法高亮 ======================== */ 安装方法同上,软件安装URL http:// ...
- 获得当前时间的PRO
1.没有参数的存储过程 create or replace procedure get_timeas cur_time varchar2(10);begin select to_char(sy ...
- Java的哪些事
Java的哪些事--------------------------------------------------Java学习分2个方面: Java语法与Java类库 Java: A simple, ...
- tomcat 7 用mod_jk做 负载均衡
在Win7中使用apache为tomcat做负载均衡,各组件及版本如下: 两个tomcat v 7.0.57 一个apache v 2.2.14 一个mod_jk v 1.2.33(for windo ...
- R语言学习笔记 之 可视化地研究参议员相似性
基于相似性聚类 很多时候,我们想了解一群人中的一个成员与其他成员之间有多么相似.例如,假设我们是一家品牌营销公司,刚刚完成了一份有潜力新品牌的研究调查问卷.在这份调查问卷中,我们向一群人展示了新品牌的 ...
- 'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法
前言: 本文的解决方法来自http://www.cnblogs.com/xionghui/archive/2012/04/11/2442404.html --感谢! 问题描述:新电脑装mysql后在c ...
- pos机套现是怎么回事
POS机是商家为了促进消费,向银行申请的刷卡机它的主要功能是转账就是通过客户的刷卡,把相对的金额转入商户的帐户银行会根据笔数或金额向商户收取手续费非法套现就是客户并未和商户产生贸易往来,单纯通过pos ...