android提供achartengine api 只能做简单的,如果是复杂的图表,个人的想法结合highcharts来完成;减小工作量,官方提供的例子也非常丰富。
通过android webview来请求数据;
public class ZTMainActivity extends Activity {
WebView browser;
ProgressDialog pd;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ztmain);
init();// 执行初始化函数
String urls = "file:///android_asset/ztpad/jsp/subway/including/subwayflow_chart.html";
loadUrl(browser, urls);
}
/**
* 初始化数据
*/
public void init() {
pd = new ProgressDialog(ZTMainActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("正在请求数据,请稍候...");
handler = new Handler() {
public void handleMessage(Message msg) {// 定义一个Handler,用于处理下载线程与UI间通讯
if (!Thread.currentThread().isInterrupted()) {
switch (msg.what) {
case 0:
pd.show();// 显示进度对话框
break;
case 1:
pd.hide();// 隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
break;
}
}
super.handleMessage(msg);
}
};
browser = (WebView) findViewById(R.id.wv);
browser.getSettings().setJavaScriptEnabled(true);// 可用JS
browser.getSettings().setSupportZoom(true);
browser.getSettings().setBuiltInZoomControls(false);
browser.getSettings().setUseWideViewPort(false);
browser.getSettings().setLoadWithOverviewMode(false);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setCacheMode(browser.getSettings().LOAD_NO_CACHE);
browser.getSettings().setDatabaseEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.setScrollBarStyle(0);// 滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
browser.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(final WebView view,
final String url) {
loadUrl(view, url);// 载入网页
return true;
}// 重写点击动作,用webview载入
});
browser.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {// 载入进度改变而触发
if (progress == 100) {
handler.sendEmptyMessage(1);// 如果全部载入,隐藏进度对话框
}
super.onProgressChanged(view, progress);
}
});
}
public void loadUrl(final WebView view, final String url) {
new Thread() {
public void run() {
try{
handler.sendEmptyMessage(0);
view.loadUrl(url);// 载入网页
}catch(Exception e){
handler.sendEmptyMessage(1);
}
}
}.start();
}
}
效果如图:
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
highcharts 柱状图 动态加载
highcharts柱状图动态加载 (1):导入样式