android提供achartengine api 只能做简单的,如果是复杂的图表,个人的想法结合highcharts来完成;减小工作量,官方提供的例子也非常丰富。

通过android webview来请求数据;
public class ZTMainActivity extends Activity {

  1. WebView browser;
  2. ProgressDialog pd;
  3. Handler handler;
  4.  
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_ztmain);
  9. init();// 执行初始化函数
  10. String urls = "file:///android_asset/ztpad/jsp/subway/including/subwayflow_chart.html";
  11. loadUrl(browser, urls);
  12. }
  13.  
  14. /**
  15. * 初始化数据
  16. */
  17. public void init() {
  18.  
  19. pd = new ProgressDialog(ZTMainActivity.this);
  20. pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  21. pd.setMessage("正在请求数据,请稍候...");
  22.  
  23. handler = new Handler() {
  24. public void handleMessage(Message msg) {// 定义一个Handler,用于处理下载线程与UI间通讯
  25. if (!Thread.currentThread().isInterrupted()) {
  26. switch (msg.what) {
  27. case 0:
  28. pd.show();// 显示进度对话框
  29. break;
  30. case 1:
  31. pd.hide();// 隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
  32. break;
  33. }
  34. }
  35. super.handleMessage(msg);
  36. }
  37. };
  38.  
  39. browser = (WebView) findViewById(R.id.wv);
  40. browser.getSettings().setJavaScriptEnabled(true);// 可用JS
  41.  
  42. browser.getSettings().setSupportZoom(true);
  43. browser.getSettings().setBuiltInZoomControls(false);
  44. browser.getSettings().setUseWideViewPort(false);
  45. browser.getSettings().setLoadWithOverviewMode(false);
  46. browser.getSettings().setAppCacheEnabled(true);
  47. browser.getSettings().setCacheMode(browser.getSettings().LOAD_NO_CACHE);
  48. browser.getSettings().setDatabaseEnabled(true);
  49. browser.getSettings().setDomStorageEnabled(true);
  50. browser.getSettings().setJavaScriptEnabled(true);
  51. browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
  52.  
  53. browser.setScrollBarStyle(0);// 滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
  54.  
  55. browser.setWebViewClient(new WebViewClient() {
  56. public boolean shouldOverrideUrlLoading(final WebView view,
  57. final String url) {
  58. loadUrl(view, url);// 载入网页
  59. return true;
  60. }// 重写点击动作,用webview载入
  61.  
  62. });
  63.  
  64. browser.setWebChromeClient(new WebChromeClient() {
  65. public void onProgressChanged(WebView view, int progress) {// 载入进度改变而触发
  66. if (progress == 100) {
  67. handler.sendEmptyMessage(1);// 如果全部载入,隐藏进度对话框
  68. }
  69. super.onProgressChanged(view, progress);
  70. }
  71. });
  72. }
  73.  
  74. public void loadUrl(final WebView view, final String url) {
  75. new Thread() {
  76. public void run() {
  77. try{
  78. handler.sendEmptyMessage(0);
  79. view.loadUrl(url);// 载入网页
  80. }catch(Exception e){
  81. handler.sendEmptyMessage(1);
  82. }
  83. }
  84. }.start();
  85. }

}

效果如图:

转:http://my.eoe.cn/1088628/archive/5330.html

android highcharts 柱状图例子的更多相关文章

  1. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  2. highcharts 柱状图 动态加载

    highcharts柱状图动态加载 (1):导入样式 <script type="text/javascript" src="<%=request.getCo ...

  3. Android MediaCodec 使用例子

    Android MediaCodec 使用例子 下面的例子是使用MediaCodec 录制到文件的例子. 1 public class AvcEncoder { private MediaCodec ...

  4. 我的Android进阶之旅------>Android拍照小例子

    今天简单的学习了一下android拍照的简单实现. 当然该程序是个小例子,非常简单,没有什么复杂的操作,但是可以学习到Android 拍照API流程. 1.在布局文件中添加一个 surfaceView ...

  5. HighCharts -教程+例子

    Highchart简介:   Highcharts是一款免费开源的纯javascript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表,  Highcharts目前支持直线图 ...

  6. highcharts 柱状图动态设置数据应用实例

    <div id="container" style="min-width:700px;height:400px"></div> #jav ...

  7. 编译android framework的例子【转】

    本文转载自:http://blog.csdn.net/brucexu1978/article/details/7610358 在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文 ...

  8. highcharts柱状图、饼状图

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  9. Android test---robotium----简单例子

    1.首先新建一个要被测试的工程,命名为”robotium“:一个很简单的Android 应用程序:主页面只有个 TextView 控件: 2. 在建一个用于测试的工程 ,命名为”robotiumTes ...

随机推荐

  1. yield()方法就是礼让,具体还是看cpu怎么分配

    package charpter07; //yield():礼让的行为public class Processor implements Runnable { @Override public voi ...

  2. 多线程中实现ApplicationContextAware接口获取需要的bean,applicationContext.getBea未返回也未报错

    唉,面试失败了有点难过. https://q.cnblogs.com/q/95168/#a_208239

  3. [转] Anaconda使用总结

    机器上的不同用户完全可以安装.配置自己的Anaconda,不会互相影响. 对于Mac.Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(~/anaconda)而已,Windo ...

  4. 在vs2008工程中制作cab包

    内容转自MSDN 1.首先,制作自己的智能设备工程 2.添加cab工程: 为解决方案添加智能设备 CAB 项目 打开现有的智能设备项目,并确保“解决方案资源管理器”可见. 在“文件”菜单上指向“添加” ...

  5. redis 持久化 AOF和 RDB 引起的生产故障

    概要       最近听开发的同事说,应用程序连接 redis 时总是抛出连接失败或超时之类的错误.通过观察在 redis 日志,发现日志中出现 "Asynchronous AOF fsyn ...

  6. 032 HDFS中高可用性HA的讲解

    HDFS Using QJM HA使用的是分布式的日志管理方式 一:概述 1.背景 如果namenode出现问题,整个HDFS集群将不能使用. 是不是可以有两个namenode呢 一个为对外服务-&g ...

  7. 关于Jar包 和 war

    Jar包: 别人写好的java类打包,将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法,一般都会放在lib目录下 war 是web项目

  8. Burp Suite之Scaner模块(三)

    Burp Suite之Scaner模块(三) Scaner模块配置详解 Scan Queue Active Scanning(主动扫描)过程通常包括发送大量请求到服务器为所扫描的每个基本的请求,这可能 ...

  9. Python中按值来获取指定的键

    转自: https://blog.csdn.net/Jerry_1126/article/details/87907162 Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可 ...

  10. POJ.2774.Long Long Message/SPOJ.1811.LCS(后缀数组 倍增)

    题目链接 POJ2774 SPOJ1811 LCS - Longest Common Substring 比后缀自动机慢好多(废话→_→). \(Description\) 求两个字符串最长公共子串 ...