我想将我用AChartEngine lib制作的折线图转换为位图。我该怎么做?我没有在网上找到任何有用的东西。 toBitmap()方法是否合适?如果是,那么如何使用它?
更新: 我用这个方法:
public static Bitmap loadBitmapFromView(View v) {
v.setDrawingCacheEnabled(true);
v.layout( 0,0,800,600);
v.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
v.buildDrawingCache();
v.getDrawingCache();
Bitmap bmp = Bitmap.createBitmap(800,600, Bitmap.Config.ARGB_8888);
v.setDrawingCacheEnabled(false);
return bmp; }
并将结果保存在png文件中,但我得到的只是一个空文件!
答案 0 :(得分:0)
toBitmap()似乎总是返回null。
试试这个:
//Get the graphical view
GraphicalView v = ChartFactory.getLineChartView(context,
buildDataset(titles, x, values), renderer);
//Enable the cache
v.setDrawingCacheEnabled(true);
//Set the layout manually to 800*600
v.layout(0, 0, 800, 600);
//Set the quality to high
v.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
//Build the cache, get the bitmap and close the cache
v.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
答案 1 :(得分:0)
有点晚了,但这是我从GraphicalView创建JPG(通过Bitmap)所做的:
Bitmap bmp = Bitmap.createBitmap( 600, 1000, Bitmap.Config.ARGB_8888 );
Canvas canvas = new Canvas(bmp);
graphicalView.draw( canvas );
FileOutputStream out = new FileOutputStream( filename );
bmp.compress( Bitmap.CompressFormat.JPEG, 97, out );
out.close();
答案 2 :(得分:0)
SVG对于图表更有效。对于我们正在使用的特定类型的图表,我入侵了AChartEngine以输出SVG。该hack很容易扩展到其他图表。如果对此有兴趣,请回答此答案,然后我将我的工作总结为要点。