之前项目需求里有一个需求是要根据每周的天气温度去绘制一个趋势图,这个图不基于XY坐标,就是一个单纯的趋势图,百度后看了一些博客,大体上有了一些思路,下面是整个趋势图的效果图:

最下面的点线图就是要做的效果。

下面贴出趋势图示例代码:

package com.example.testxyjar;import utils.XYViewDrawBitmap;
import utils.XYViewDrawLine;
import utils.XYViewDrawPointer;
import utils.XYViewDrawText;
import view.XYView;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import bean.XYViewBitmapBean;
import bean.XYViewLineBean;
import bean.XYViewPointerBean;
import bean.XYViewTextBean;public class MainActivity extends Activity {private XYView xyview;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initCache();initView();initData();}private void initCache() {}private void initView() {xyview = (XYView) findViewById(R.id.main_page_view_xyview);}private void initData() {// 第一个点XYViewPointerBean xyPointer = new XYViewPointerBean();float data[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };xyPointer.setData(data);xyPointer.setColor(Color.RED);xyPointer.setStrokeWidth(20.0f);XYViewDrawPointer xyViewDrawPointer = new XYViewDrawPointer(xyPointer);xyview.addXYViewDrawable(xyViewDrawPointer);// 画图XYViewBitmapBean xybitmap = new XYViewBitmapBean();float dataBitmap[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };Drawable d = getResources().getDrawable(R.drawable.weather_temperature_point_icon_high);BitmapDrawable bd = (BitmapDrawable) d;Bitmap b = bd.getBitmap();Bitmap[] bs = { b, b, b, b, b, b };xybitmap.setY_away(40);xybitmap.setData(dataBitmap);xybitmap.setBitmapData(bs);XYViewDrawBitmap xyViewDrawBitmap = new XYViewDrawBitmap(xybitmap);xyview.addXYViewDrawable(xyViewDrawBitmap);// 第一个线XYViewLineBean xyLineBean = new XYViewLineBean();xyLineBean.setData(data);xyLineBean.setColor(Color.BLACK);xyLineBean.setStrokeWidth(2.0f);XYViewDrawLine xyViewLine = new XYViewDrawLine(xyLineBean);xyview.addXYViewDrawable(xyViewLine);//XYViewTextBean xyTexter = new XYViewTextBean();float dataText[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };String [] dataStrs={"大娃","二娃","三娃","四娃","五娃","六娃"};xyTexter.setData(dataText);xyTexter.setColor(Color.RED);xyTexter.setStrokeWidth(1.0f);xyTexter.setTextSize(18.0f);xyTexter.setTextData(dataStrs);XYViewDrawText xyViewTexter = new XYViewDrawText(xyTexter);xyview.addXYViewDrawable(xyViewTexter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

代码中用到的jar包以上传到我的资源里,如有求要,请下载使用。

android自定义趋势图相关推荐

  1. android自定义波浪图,Android自定义控件--波浪图控件

    今天给大家分享一个android的波浪图控件制作.具体效果如下图所示: 上次有个app使用了这个控件,感觉特别酷炫.今天讲解一下这个控件的思路分析与代码编写. 思路分析: 1.绘制波浪图 2.移动波浪 ...

  2. Android 自定义折线图实现教程

    前言: 各位同学大家好,有段时间没有给大家更新文章了,具体多久我也记不清楚了.最近重新复习了一下原生安卓的知识点,写了一个安卓原生自定义折线图的效果,就想着分享给大家.希望帮助到各位学习和工作,那份废 ...

  3. 新手如何画出自定义View(Android——自定义折线图)

    在正式开始之前 我还是打算先说几句废话: 1.本文章是让初学者画自定义View所以不会对代码进行过多的解释 2.为什么不用现有强大的图表框架 列如:Android HelloChart 或者 MPAn ...

  4. android 自定义折线图

    看图: 比较简陋,主要是通过canvas画上去的: package com.example.democurvegraph.view;import java.util.ArrayList; import ...

  5. Android 自定义雷达图(蜘蛛网图)

    这次自定义实现雷达图,它可以用在分析某些内容所占的比例,比较直观地突出某些数据,比如可以用在游戏玩家的各项能力的分析上,那么它的各项指标就比较明显地看出来了.效果图如下: 看完这幅图大家就清楚要实现的 ...

  6. Android自定义sleep图,android自定义view实现钟表效果

    本文实例为大家分享了android view实现钟表的具体代码,供大家参考,具体内容如下 先看效果图: 自定义view大家肯定已经不陌生了,所以直接今天直接步入正题:如何利用canvas去绘制出一个钟 ...

  7. android自定义折线图可左右滑动,25.Android自定义折线图,可左右滑动

    前言 最近项目需要折线图,自己就手画了一个,主要是锻炼下自己的自定义控件技术.控件没有实现惯性滑动,希望知道的朋友指教下. 效果图 hehe.gif 直接上代码 public class MyLine ...

  8. Android自定义折线图,可设置基准线,不同点颜色

    最近项目中需要用到折线图,发现了一款比较好用的折线图hellocharts,做了炫酷的动画以及折线图,柱状图,混合图都有涉及到,非常的棒,在此推荐一下. 但是使用过程中碰到这样的需求: ①:不同数据点 ...

  9. android自定义曲线控件,Android自定义折线图(可拖动显示)

    废话不多说先上图咯 图一 至于怎么做呢 咱们可以先获取下折线图数据分析一波 { "code": 200, "message": "", &q ...

  10. android 自定义雷达图,Android自定义蛛网图(雷达图)

    前言 纸上得来终觉浅,绝知此事要躬行. 直接上代码 import android.content.Context; import android.graphics.Canvas; import and ...

最新文章

  1. 机器学习之挖掘melb_data.csv数据
  2. TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘
  3. 在家办公的第一天,钉钉、企业微信集体“崩溃”...
  4. ZOJ-2587 Unique Attack 最小割的唯一性判定
  5. MySQL运算符,函数,索引,图形化管理工具
  6. 小甲鱼 OllyDbg 教程系列 (十六) : 简单病毒的逆向分析
  7. 怎么重置blockinput的锁_OPPOA9锁屏密码忘了怎么办? OPPO忘记锁屏密码的解决办法...
  8. 爬虫-post请求-RR网的登陆页-草稿-关注js反爬虫手法-只看不钻
  9. 关于Samba的资源共享配置详解
  10. 「译文」你必须掌握的 7 种 JavaScript 错误类型
  11. 笔者使用macOS的一些经验点滴记录1
  12. 软件开发人员,自身素质应该注意的问题!
  13. 善用VS中的Code Snippet来提高开发效率
  14. linux不用清理内存吗,清理不必要的Ubuntu磁盘空间占用
  15. 项目进度管理+项目成本管理
  16. 串口调试助手使用说明
  17. 快速学习Java8新特性第七讲——Optional类
  18. gogodroid--android 上的IPV6工具
  19. 北上广深杭30K试题:JVM内存模型如何分配的?
  20. Spring Boot 技术知识点:如何详解@WebFilter注解

热门文章

  1. Java编程:栈的应用实例——简单的综合计算器实现(中缀表达式)
  2. Node.js:Node核心模块
  3. JavaScript:递归实现深拷贝
  4. mysql 覆盖式索引_【MySQL】性能优化之 覆盖索引
  5. Java:对于Borderlayout布局管理的理解
  6. windows远程桌面神器
  7. 数据分析与机器学习之线性回归与逻辑回归(六)
  8. 作业题---设计一个类,求和的方法,求乘积的方法
  9. 移动跨平台框架开发之一:ios重用c++库
  10. 移植Andorid4.0.4 - 步骤及问题汇总