Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在布局中加载图表_Java_Android_Achartengine - Fatal编程技术网

Java 在布局中加载图表

Java 在布局中加载图表,java,android,achartengine,Java,Android,Achartengine,我尝试在布局中加载一个图形,一个使用AChartEngine的数学图形。我从网站下载了一个演示zip,我意识到我需要一个类似sin-cosin-grahp风格的东西。这是我写的代码: package com.myproject; import org.achartengine.ChartFactory; import org.achartengine.GraphicalView; import org.achartengine.chart.PointStyle;

我尝试在布局中加载一个图形,一个使用AChartEngine的数学图形。我从网站下载了一个演示zip,我意识到我需要一个类似sin-cosin-grahp风格的东西。这是我写的代码:

    package com.myproject;
    import org.achartengine.ChartFactory;
    import org.achartengine.GraphicalView;
    import org.achartengine.chart.PointStyle;
    import org.achartengine.model.XYMultipleSeriesDataset;
    import org.achartengine.renderer.XYMultipleSeriesRenderer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Color;
    import android.view.View;
    import android.webkit.WebView;
    import android.widget.LinearLayout;
    import android.widget.LinearLayout.LayoutParams;
    import com.myproject.clases.AbstractDemoChart;

    public class MainActivity extends Activity {

private WebView ventana;
private GraphicalView mChartView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    XYMultipleSeriesDataset mDataset = null;//this line causes runtime error but I will see this issue later.
            int [] colors = new int[] { Color.BLUE, Color.CYAN };
        PointStyle[] styles = new PointStyle[] { PointStyle.POINT, PointStyle.POINT };
        XYMultipleSeriesRenderer mRenderer = buildRenderer(colors, styles);
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart);      
    mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
    layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
}
但是这条线

    XYMultipleSeriesRenderer mRenderer = buildRenderer(colors, styles);

由于buildRenderer()方法属于AbstractDemoChart类,导致编译错误。我如何从另一个类中获取一个方法以在另一个类中使用?这可能是我知道的对象编程的一个基本问题,但我在这里问这个问题也是为了知道我在布局中加载grahp图表的意图是否做得很好。我在Eclipse工作。谢谢

buildRenderer
AbstractDemoChart
中受保护的方法。但在示例
buildRenderer
中,是一个私有方法,它可以执行以下操作:

private XYMultipleSeriesRenderer buildRenderer(int[] colors,PointStyle[] styles) 
    {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        setRenderer(renderer, colors, styles);
        return renderer;
    }
你看过代码吗?它通过以下方式创建渲染器:

private XYMultipleSeriesRenderer getDemoRenderer() {

    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);
    renderer.setMargins(new int[] {20, 30, 15, 0}); 
    ...

我认为您应该更改初始化
xymultiplesseriesrender

buildRenderer
AbstractDemoChart
中受保护的方法。但在示例
buildRenderer
中,是一个私有方法,它可以执行以下操作:

private XYMultipleSeriesRenderer buildRenderer(int[] colors,PointStyle[] styles) 
    {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        setRenderer(renderer, colors, styles);
        return renderer;
    }
你看过代码吗?它通过以下方式创建渲染器:

private XYMultipleSeriesRenderer getDemoRenderer() {

    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);
    renderer.setMargins(new int[] {20, 30, 15, 0}); 
    ...

我认为您应该更改初始化
xymultiplesseriesrender

的方式,谢谢Sam,我做了或多或少的操作,正如您传递给我的链接所示,现在可以了图形显示得很好,但出现了一些新问题。我的图形的背景是白色的,我希望它是黑色的(我想我可以修复它),如果图形的容器视图设置为高度为wrap_content,则图形被限制在其他布局留下的空间中,并且无法正确查看。所以我必须把它设置在指定的尺寸上,比如说150dp来正确显示,这也发生在你身上了吗?。最后一个问题,我必须通过编程调整文本和数字的大小,因为它们往往会重叠。再次感谢Sam@JoeCoolman,我没有看到你的应用程序,但为什么
wrap\u content
?这里不是更好吗?对不起,如果我误解了你的意图。还可以查看他们自己的示例代码,看看他们使用了什么布局。我想显示图形以及一些其他信息和额外数据,而不仅仅是图形。好的,Sam谢谢你的见解。谢谢Sam,我做了或多或少的事情,正如你发给我的链接所示,现在没关系了,图表显示得很好,但出现了一些新问题。我的图形的背景是白色的,我希望它是黑色的(我想我可以修复它),如果图形的容器视图设置为高度为wrap_content,则图形被限制在其他布局留下的空间中,并且无法正确查看。所以我必须把它设置在指定的尺寸上,比如说150dp来正确显示,这也发生在你身上了吗?。最后一个问题,我必须通过编程调整文本和数字的大小,因为它们往往会重叠。再次感谢Sam@JoeCoolman,我没有看到你的应用程序,但为什么
wrap\u content
?这里不是更好吗?对不起,如果我误解了你的意图。还可以查看他们自己的示例代码,看看他们使用了什么布局。我想显示图形以及一些其他信息和额外数据,而不仅仅是图形。好的,山姆,谢谢你的见解。