aChartEngine - 是否可以将图形保存为图像而不在布局中显示?

时间:2014-07-24 17:45:44

标签: android image layout graph achartengine

我正在尝试创建折线图并将其保存为我稍后将在应用中使用的图像。但我找不到一种方法来创建图表并保存它而不首先在布局中显示它。

如果我像这样创建图表:

// Getting a reference to LinearLayout of the MainActivity Layout
 chartContainer = (LinearLayout) findViewById(R.id.chart_container);

// Creating a Line Chart
    mChart = (GraphicalView) ChartFactory.getLineChartView(getBaseContext(), dataset, multiRenderer); 


   // Adding the Line Chart to the LinearLayout
    chartContainer.addView(mChart);

然后使用以下方法保存:

bitmap1 = Bitmap.createBitmap(mChart.getDrawingCache());

它完美无缺,但如果我省略了mapContainer的布局,我会得到一个由NullPointerException引起的IllegalStateException。

我该如何解决? 谢谢

1 个答案:

答案 0 :(得分:0)

您可以通过在任何按钮操作中实施图片来保存图片。

 button2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

mChart.setDrawingCacheEnabled(true);
            Bitmap bitmap = mChart.getDrawingCache();
            File file ,f = null;                    
            if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
                {  
                     file =new File(android.os.Environment.getExternalStorageDirectory(),"Save_Image");
                     if(!file.exists())
                    {
                      file.mkdirs();

                     } 
                     f = new File(file.getAbsolutePath()+file.separator+ "app"+".png");
                }
              FileOutputStream ostream = new FileOutputStream(f);                                   
              bitmap.compress(CompressFormat.PNG, 10, ostream);
              ostream.close();

}
    });