2013-04-05 3 views
0

Я хочу преобразовать линейный график, который я сделал с помощью AChartEngine lib в bitmap. Как я должен это делать? Я не нашел в сети ничего, что могло бы помочь. Подходит ли метод toBitmap(), если да, то как его использовать?Как преобразовать диаграмму AChartEngine в растровое изображение

Update: Я использовал этот метод:

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

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

я просто попытался, что она возвращает нуль слишком – user2137817

0

Немного поздно, но это то, что я сделал, чтобы создать JPG (через растр) из GraphicalView:

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(); 
Смежные вопросы