Androidplot - 未显示在横向
问题描述:
如果我使用Androidplot绘制条形图,然后将手机方向从纵向更改为横向,则所有图表信息都会消失。 (链接到屏幕截图)。Androidplot - 未显示在横向
景观---没有图表数据
https://drive.google.com/file/d/0B4CxFPSlLEYpSXV1VnZFVFUtWGc/edit?usp=sharing
肖像---图表数据
https://drive.google.com/file/d/0B4CxFPSlLEYpdGZCMm8xdGZHTlk/edit?usp=sharing
一些经过试用和错误我发现,如果我的图表的宽度设置为设备屏幕宽度为0.96所有图表信息再次出现。
如何让Androidplot在横向占用100%的设备屏幕宽度?
我创建图表的代码可以在Androidplot - X-Axis labels cut off
答
发现做这样的事情
private View createBarGraph()
{
// initialize our XYPlot reference:
XYPlot plot = (XYPlot) this.findViewById(R.id.mySimpleXYPlot1);
// Create a couple arrays of y-values to plot:
Number[] series1Numbers = GenerateGraphValues();
// Turn the above arrays into XYSeries':
XYSeries series1 = new SimpleXYSeries(Arrays.asList(series1Numbers),
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the
// element index as the x value
"Series1"); // Set the display title of the series
BarFormatter series1Format = new BarFormatter(Color.rgb(51, 181, 229), Color.TRANSPARENT);
PointLabelFormatter plf = new PointLabelFormatter();
plf.getTextPaint().setTextSize(18);
plf.getTextPaint().setColor(Color.BLACK);
series1Format.setPointLabelFormatter(plf);
series1Format.setPointLabeler(new PointLabeler(){
DecimalFormat df = new DecimalFormat("##0.00");
public String getLabel(XYSeries series, int index)
{
// need to check for null
if(series.getY(index) == null) return "";
return df.format(series.getY(index));
}
});
// add a new series' to the xyplot:
plot.addSeries(series1, series1Format);
// Y axis config
plot.setRangeLabel("Values"); // label
plot.setRangeBoundaries(0, 110, BoundaryMode.FIXED); // scale
plot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, 10); // steps
plot.getGraphWidget().getRangeLabelPaint().setTextSize(26); // font size
DecimalFormat nf = new DecimalFormat("#0");
plot.setRangeValueFormat(nf);
// X Axs config
plot.setDomainLabel("Indexes");
plot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 1);
plot.getGraphWidget().setDomainValueFormat(new DecimalFormat("0"));
plot.getGraphWidget().getDomainLabelPaint().setTextSize(18);
plot.getGraphWidget().setMarginTop(20);
plot.getGraphWidget().setMarginBottom(15);
plot.getGraphWidget().setMarginLeft(15);
plot.getGraphWidget().setMarginRight(15);
// plot.getLegendWidget().setHeight(14);
plot.getGraphWidget().setGridPaddingLeft(15);
plot.getGraphWidget().setGridPaddingRight(15);
// plot.getGraphWidget().setGridPaddingBottom(20);
// other config
plot.getLegendWidget().setVisible(false); // hide legend
plot.getGraphWidget().getDomainGridLinePaint().setColor(Color.TRANSPARENT); // hide
// grid
// lines
plot.getGraphWidget().getRangeGridLinePaint().setColor(Color.TRANSPARENT); // hide
// grid
// lines
// plot.getGraphWidget().setGridPaddingLeft(40); // give some padding
// plot.getGraphWidget().setGridPaddingRight(40); // give some padding
plot.getGraphWidget().getGridBackgroundPaint().setColor(Color.WHITE); // background
// color
// plot.getTitleWidget().setPaddingTop(10); // give some padding
// set bar width
BarRenderer<?> renderer = (BarRenderer<?>) plot.getRenderer(BarRenderer.class);
renderer.setBarWidth(20);
return plot;
}
如果你运行在上面的实验,会发生什么[中的demoApp的(https://play.google .com/store/apps/details?id = com.androidplot.demos&hl = en)条形图活动?它是否表现出相同的行为?它正在使用我的设备。 – Nick 2014-09-11 14:08:44
不,图表以横向模式显示。如果您在http://stackoverflow.com/q/25780552/816754上运行我的代码,会发生什么情况会显示不正确的行为? – Mark 2014-09-12 02:31:21
@Mark在这两种模式下都会出现,但在人像模式下会缩小。 – keshav 2014-09-16 06:31:13