显示在android的条之间的空间 [英] Showing spaces between bars in android
问题描述
如何提条形图的栏杆之间的空间在android系统?
在此先感谢!..
上面的图片会让你我的doubt.ie清晰。
蓝色酒吧实际上是不适合相应的X轴的值,这里有(Ord_1,Ord_2,Ord_3,Ord_4)。
我需要证明这些酒吧装有x轴values.How做到这一点?
请找我下面
来源BarChart.java
公共类BARCHART扩展活动
{
/ **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState)
{
super.onCreate(savedInstanceState);
意向意图= createIntent();
startActivity(意向);
}公共意向createIntent()
{
的String []标题=新的String [] {每个订单的利润,}; 清单<双层[]>值=新的ArrayList<双层[]>(); values.add(新双[] {6,9,21,3});
values.add(新双[] {0,0,0,0});
INT [] =颜色INT新[] {Color.BLUE,Color.BLACK}; XYMultipleSeriesRenderer渲染= buildBarRenderer(颜色);
renderer.setOrientation(Orientation.HORIZONTAL); setChartSettings(渲染,2012年度利润,,,0,30,0,30,Color.GRAY,Color.LTGRAY); renderer.setXLabels(1);
renderer.setYLabels(10); renderer.addXTextLabel(2.75Ord_1);
renderer.addXTextLabel(6.75Ord_2);
renderer.addXTextLabel(10.75Ord_3);
renderer.addXTextLabel(14.75Ord_4); renderer.setBarSpacing(-1.75); INT长度= renderer.getSeriesRendererCount(); 的for(int i = 0; I<长度;我+ +)
{
SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(ⅰ);
seriesRenderer.setDisplayChartValues(假);
} 返回ChartFactory.getBarChartIntent(这一点,buildBarDataset(标题,值),渲染器,
Type.DEFAULT);
}保护XYMultipleSeriesRenderer buildBarRenderer(INT []颜色)
{ //创建一个SeriesRenderer并提供有用的默认值,以及颜色进行初始化 XYMultipleSeriesRenderer渲染器=新XYMultipleSeriesRenderer(); renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15); INT长度= colors.length; 的for(int i = 0; I<长度;我+ +)
{
SimpleSeriesRenderer R =新SimpleSeriesRenderer();
r.setColor(颜色[I]);
renderer.addSeriesRenderer(R);
}
返回渲染器;
}保护无效setChartSettings(XYMultipleSeriesRenderer渲染,字符串title,字符串xTitle,
串yTitle,双XMIN,双XMAX,双YMIN,双YMAX,INT axesColor,
INT labelsColor)
{
//设置很多默认值的此渲染 renderer.setChartTitle(职称);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(XMIN);
renderer.setXAxisMax(XMAX);
renderer.setYAxisMin(YMIN);
renderer.setYAxisMax(YMAX);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor); renderer.setApplyBackgroundColor(真);
renderer.setBackgroundColor(Color.BLACK);
}保护XYMultipleSeriesDataset buildBarDataset(的String []标题,列表与LT;双层[]>数值)
{ //添加轴标题和值到数据集 XYMultipleSeriesDataset数据=新XYMultipleSeriesDataset();
INT长度= titles.length; 的for(int i = 0; I<长度;我+ +)
{
CategorySeries系列=新CategorySeries(标题[I]);
双[] V = values.get(I)
INT seriesLength = v.length; 对于(INT K = 0; K< seriesLength; k ++)
{
series.add(ⅴ[K]);
}
dataset.addSeries(series.toXYSeries());
}
返回的数据集;
}
}
您在呼唤 setChartSettings
与设定的X轴的可视范围0〜30之间的一些参数同样为Y轴。你可以调整这些参数有一个更好的轻松显示。
您在呼唤 renderer.setBarSpacing()
与负值。只需使用一个积极的,具有 0.5F
启动(这意味着间距等于酒吧厚度的一半),然后调整它根据您的需求。
How to mention the spaces between the bars of a bar-chart in android?
Thanks in advance!..
Above the image will make you clear about my doubt.ie,.
The blue bars are actually not fit to the corresponding x-axis values,here are (Ord_1,Ord_2,Ord_3,Ord_4).
I need to show these bars fitted with the x-axis values.How to do this?
Please find my sources below
BarChart.java
public class BarChart extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent intent = createIntent();
startActivity(intent);
}
public Intent createIntent()
{
String[] titles = new String[] { "Profits per order", " " };
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 6, 9, 21, 3 });
values.add(new double[] { 0, 0, 0, 0});
int[] colors = new int[] { Color.BLUE, Color.BLACK };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
renderer.setOrientation(Orientation.HORIZONTAL);
setChartSettings(renderer, "Profit of the year 2012", " ", " ", 0,30, 0,30, Color.GRAY, Color.LTGRAY);
renderer.setXLabels(1);
renderer.setYLabels(10);
renderer.addXTextLabel(2.75, "Ord_1");
renderer.addXTextLabel(6.75, "Ord_2");
renderer.addXTextLabel(10.75, "Ord_3");
renderer.addXTextLabel(14.75,"Ord_4");
renderer.setBarSpacing(-1.75);
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++)
{
SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
seriesRenderer.setDisplayChartValues(false);
}
return ChartFactory.getBarChartIntent(this, buildBarDataset(titles, values), renderer,
Type.DEFAULT);
}
protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors)
{
// creates a SeriesRenderer and initializes it with useful default values as well as colors
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
int length = colors.length;
for (int i = 0; i < length; i++)
{
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(colors[i]);
renderer.addSeriesRenderer(r);
}
return renderer;
}
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,
String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,
int labelsColor)
{
// sets lots of default values for this renderer
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.BLACK);
}
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values)
{
// adds the axis titles and values into the dataset
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
int length = titles.length;
for (int i = 0; i < length; i++)
{
CategorySeries series = new CategorySeries(titles[i]);
double[] v = values.get(i);
int seriesLength = v.length;
for (int k = 0; k < seriesLength; k++)
{
series.add(v[k]);
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
}
You are calling setChartSettings
with some parameters that set the X axis visual range between 0 and 30 and the same for the Y axis. You can tweak these parameters for having a better relaxed display.
You are calling renderer.setBarSpacing()
with a negative value. Just use a positive one, start with 0.5f
(which means the spacing being equal to half the bar thickness) and then tweak it based on your needs.
这篇关于显示在android的条之间的空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!