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(媒体查询)实 ...
随机推荐
- EventHandler委托的使用
今天复习了一下事件和委托,本来看事件来着,看到EventHandler,写了一个小例子,想贴在这里解释一下.为了弄清楚EventHandler, 还是回归到最基本的委托,曾经在园子里看到一位前辈用深入 ...
- 【转】为什么我说 Android 很糟糕
http://zhuanlan.zhihu.com/wooyun/19879016 Android 的安全问题一直被吐槽,包括不安全的APP市场.上次的远程命令执行漏洞.还有它的权限机制,总之一团糟, ...
- PAT IO-02 整数四则运算
/* *PAT IO-02 整数四则运算 *2015-07-30 *作者:flx413 */ #include<stdio.h> int main() { int a, b; scanf( ...
- 使用IO流创建文件并写入数据
/* 字符流和字节流: 字节流两个基类: InputStream OutputStream 字符流两个基类: Reader Writer 既然IO流是用于操作数据的, 那么数据的最常见体现形式是:文件 ...
- vim命令总结
前言 本文翻译自:http://bencrowder.net/files/vim-fu/,参考了VIM中文帮助. Google翻译结果和实际操作结果,对原文的部分内容重新整理,删除和添加了 部分内容并 ...
- 关于Oracle表空间数据文件自增长的一些默认选项
昨天,一个同事请教了一些关于Oracle表空间数据文件自增长的问题,解答过程中顺便整理起来,以后其他同事有同样的疑问时可以直接查阅. 实验内容: 创建MYTEST表空间,默认不开启自增长. 给MYTE ...
- mysql数据库本地化操作
<?php if(!defined('SITE_PATH')){ define('SITE_PATH',dirname(dirname(__FILE__))); } $dbconfig=incl ...
- div+css登陆界面案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- DOM文档对象总结
DOM总结: DOM:文档对象模型document object model DOM三层模型: DOM1:将HTML文档封装成对象 DOM2:将XML文档封装成对象 DOM3:将XML文档封装成对象 ...
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
交互式shell和非交互式shell.登录shell和非登录shell的区别.首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录. 交互式shell和非交互式shell(intera ...