我想在android原生应用程序(而不是phonegap)中集成fusionchart。我已经为它编写代码,如下所示
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webview =(WebView) findViewById(R.id.web);
String summary =
"<html>"+
"<head> "+
" <title>My First chart using FusionCharts XT - Using JavaScript</title> "+
"<script type=\"text/javascript\" src=\"FusionCharts/FusionCharts.js\"></script>"+
"</head> "+
"<body>"+
" <div id=\"chartContainer\">FusionCharts XT will load here!</div>"+
"<script type=\"text/javascript\">"+
" var myChart = new FusionCharts( \"FusionCharts/Column3D.swf\",\"myChartId\", \"400\",\"300\", \"0\", \"1\" );"+
"myChart.setXMLUrl(\"Data.xml\");"+
"myChart.render(\"chartContainer\");"+
"</script>"+
"</body>"+
"</html>";
webview.loadDataWithBaseURL(null, summary, "text/html", "utf8", null);
}
请有人告诉我什么是问题。我不知道如何给出精确的FusionCharts / FusionCharts.js路径,也不知道Column3D.swf文件。
我在哪里可以获得这些文件。
即使这个HTML代码也无法在我的电脑浏览器中运行。
我想在android应用程序中使用fusionchart !!!制作条形图
答案 0 :(得分:1)
您需要下载FusionCharts XT下载包才能接收必要的JavaScript和SWF文件,这些文件位于下载包的“图表”文件夹中,可让您呈现FusionCharts。您可以从here下载评估包。
此外,请检查here以了解在浏览器上创建第一个图表的详细过程。
FusionCharts预计可以完美地在原生Android应用上运行,只要提及here所有其他标准来呈现JavaScript图表(Android 3.0及更高版本)并完成Flash图表。
FusionCharts没有任何本机API来呈现Android应用中的图表。因此,您需要使用一些第三方移动开发框架,如PhoneGap,UIWebView等,以及它们提供的API控件,以实现相同的目标。
在本机Android应用程序中没有用于渲染FusionCharts的示例,但是,使用UIWebView Control的iOS应用程序有类似的实现,可以在此Blog post的帮助下引用。 [注意:这纯粹是作为参考,并不直接是Android实现。]
答案 1 :(得分:0)
您可以从FusionCharts XT包中获取SWF和JS文件。可以从http://www.fusioncharts.com/downloads获得试用版下载。您将从Download Pack > Charts
文件夹中获取这些文件。
通常,您需要将这些文件放在/assets
文件夹中。这些文件包含apk
。您可以使用路径/assets/...
。
请记住,如果您的目标是Android v3 +,则无需渲染Flash图表。因此,您无需复制这些SWF
文件。 FusionCharts提供JavaScript(无Flash)图表,您的实现变得更加简单,详见以下步骤:
FusionCharts.js
,FusionCharts.HC.js
,FusionCharts.HC.Charts.js
和jquery.min.js
复制到所需的文件夹。但是,只在HTML代码中包含
FusionCharts.js
。其他JavaScript文件将自动加载。
不是传递SWF
文件的名称,而是传递图表的JavaScript别名。您的代码中需要修改:
var myChart = new FusionCharts( \"Column3D\",\"myChartId\...
Column3D
是您尝试呈现的图表的别名。无需在路径前添加前缀。
不要使用setXMLUrl
加载XML。 FusionCharts使用ajax加载XML数据。在大多数浏览器中,不支持本地Ajax(由于安全性限制),它可能会失败。相反,使用Android的资源加载机制(Load file from resource)加载XML,并使用setXMLData
方法将数据作为String传递给图表。
myChart.setXMLData(XMLLoadedAsString);
更多:更加同步的方法是实现这一点,将图表渲染JavaScript代码包装在FusionCharts的ready
事件监听器中,如下所示:
<script type=\"text/javascript\">"+
" FusionCharts.addEventListener(\"ready\", function () { \n"+
" var myChart = new FusionCharts( \"FusionCharts/Column3D.swf\",\"myChartId\", \"400\",\"300\", \"0\", \"1\" );"+
" myChart.setXMLUrl(\"Data.xml\");"+
" myChart.render(\"chartContainer\");"+
"\n});"+
"</script>"