Android 类似时间轴的实现

时间:2022-09-24 21:41:05

想要实现图片中的的时间轴的效果,设定了三种颜色,但是出来的只有一个黑色,还不是设定好的,而且长度很长的话不能滚动,下面上代码:

布局文件:

<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 类似时间轴的实现的更多相关文章

  1. android 简易时间轴&lpar;实质是ListView&rpar;

    ListView的应用 1.在很多时候是要用到时间轴的,有些处理的时间轴比较复杂,这里就给出一个比较简单的时间轴,其实就是ListView里面的Item的设计. 直接上代码: ListView,ite ...

  2. Android实现时间轴

    昨天群里有讨论时间轴的项目,没有接触过,以为非常吊,研究之后才知道表面都是忽悠人的,使用listview就能实现了,也没有什么新奇的东西 废话少说,直接上图 图片和文字都能够私人订制 没什么好说的,直 ...

  3. Android 时间轴

    最近开发的app中要用到时间轴这东西,需要实现的效果如下: 想想这个东西应该可以用listview实现吧.然后最近就模拟着去写了: 首先写  listview的item的布局: listview_it ...

  4. Android自定义指示器时间轴

    指示器时间轴在外卖.购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现.   在Activity关联的布局文件activit ...

  5. Android实训案例&lpar;三&rpar;——实现时间轴效果的ListView&comma;加入本地存储,实现恋爱日记的效果!

    Android实训案例(三)--实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果! 感叹离春节将至,也同时感叹时间不等人,一年又一年,可是我依然是android道路上的小菜鸟,这篇讲 ...

  6. Android 时间轴的实现

    时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴(如图),想必大家都不陌生. 时间轴的初探 初次见到这种UI,感觉整个布局 ...

  7. android项目解刨之时间轴

    近期开发的app中要用到时间轴这东西.须要实现的效果例如以下: 想想这个东西应该能够用listview实现吧. 然后近期就模拟着去写了: 首先写  listview的item的布局: listview ...

  8. Android时间轴效果,直接使用在你的项目中

    近期开发app搞到历史查询,受腾讯qq的启示,搞一个具有时间轴效果的ui,看上去还能够,然后立即想到分享给小伙伴,,大家一起来看看,先上效果图吧 watermark/2/text/aHR0cDovL2 ...

  9. JQuery&plus;HTML5&plus;CSS3制作时间轴插件,支持响应式布局

    一.效果图预览 (图一) (图二) 附注说明: 图一是浏览器宽度像素大于560px下的展示效果,图二是在浏览器宽度像素小于560px下的展现效果.使用的是CSS3的Media Query(媒体查询)实 ...

随机推荐

  1. 三维网格补洞算法(Radial Basis Function)

    在逆向工程中,由于设备或模型的原因,我们获取得到的三维模型数据往往并不完整,从而使得生成的网格模型存在孔洞,这对后续的模型分析会造成影响.下面介绍一种基于径向基函数(RBF:Radial Basis ...

  2. 微信公众平台可通过UnionID机制在多公众号间帐号互通

    微信公众平台越来越注重开发者的反馈信息了,这不,微信开放平台提供了UnionID机制,通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通 ...

  3. 使用TouchScript做2D按钮实现长按功能

    导入TouchScript 下载地址:https://www.assetstore.unity3d.com/#/content/7394 把TouchScript和Touch Debugger两个预设 ...

  4. dubbo配置文件报错解决方案

    下载dubbo.xsd 文件 在eclipse->window->perferences->XML Catalog->Add ->File system->选择刚才 ...

  5. js选择目录

    找了好久,终于找到了! function browseFolder(path) {//打开本地目录(目录选择功能) try { var Message = "\u8bf7\u9009\u62 ...

  6. 运用Gulp压缩文件编译文件。包括css js html image

    安装node.js  npm  以及安装gulp等方法我就不在这里赘述了. 接下里我主要介绍的是Gulpfile文件里面的配置该如何书写. var gulp = require('gulp');//引 ...

  7. Lvs原理

    官方文档: http://www.linuxvirtualserver.org/zh/lvs1.html http://www.linuxvirtualserver.org/zh/lvs2.html ...

  8. https资料

    1.HTTPS的七个误解   http://blog.httpwatch.com/2011/01/28/top-7-myths-about-https/ 中文 http://www.cnblogs.c ...

  9. 四种MySQL存储引擎

    前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以 ...

  10. 使用block来解决实现switch解决字符串

    NSString *lookup=@"Hearts"; typedef void  (^CaseBlock)(); NSDictionary *diction=@{@"D ...