我想在我的Activity中整合一個簡單的XY折線圖。在尋找自定義(可定製背景,顏色,軸標籤)的免費圖表時,我發現了兩個候選人:Achartengine和Adnroidplot。還有一些其他庫,但它們不是可定製的或僅作爲單獨的意圖提供。Android上的圖表 - androidplot和achartengine的問題
我還需要支持較舊的Android API(必須支持至少1.6)。
我試過Achartengine,但是當我將它集成到一個ScrollView中時失敗了。當我滾動時,圖表變得不知何故被損壞,它被擠壓,一些背景元素似乎飄走了。
然後我試了Adnroidplot。起初它並不是從1.6開始的,因爲Pair類。但我在Adnroidplot論壇上發現了一個修復問題。一切似乎工作正常,也動態更新,雖然自定義觀察員工作正常。自定義X軸標籤有點難(我需要自定義字符串而不是數字),但是使用自定義格式化程序我終於做到了。
但後來我試着用客戶端數據庫中的真實數據進行測試。有一系列具有相同值的點。我很震驚地看到,Adnroidplot無法畫出水平線,它掛起或完全弄亂了圖表!
下面是測試情況下,我從Adnroidplot快速入門借來的,做了小的修改,使一個系列用相等值:
pricesPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot);
// Create array of y-values to plot:
Number[] series1Numbers = {7, 7}; // horizontal line expected, got nothing or hang
// Turn the above arrays into XYSeries:
XYSeries series1 = new SimpleXYSeries(
Arrays.asList(series1Numbers), // SimpleXYSeries takes a List so turn our array into a List
ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the element index as the x value
"Series1"); // Set the display title of the series
// Create a formatter to use for drawing a series using LineAndPointRenderer:
LineAndPointFormatter series1Format = new LineAndPointFormatter(
Color.rgb(0, 200, 0), // line color
Color.rgb(0, 100, 0), // point color
null); // fill color (optional) <- my app hangs if I add it for a horizontal line
// Add series1 to the xyplot:
pricesPlot.addSeries(series1, series1Format);
// Reduce the number of range labels
pricesPlot.setTicksPerRangeLabel(3);
// By default, AndroidPlot displays developer guides to aid in laying out your plot.
// To get rid of them call disableAllMarkup():
pricesPlot.disableAllMarkup();
我已經張貼在Adnroidplot論壇,但我不知道有多快他們會回答,問題何時會得到解決。
所以我希望也許有人在StackOverflow可能知道一些解決方法嗎?
退房的解決辦法,我想出了以繪製一個水平線,或者我應該說,讓你的橫線顯示在AndroidPlot中。 – whyoz 2014-02-06 00:22:34