我正在尝试创建折线图并将其保存为我稍后将在应用中使用的图像。但我找不到一种方法来创建图表并保存它而不首先在布局中显示它。
如果我像这样创建图表:
// 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。
我该如何解决? 谢谢
答案 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();
}
});