2014-07-24 3 views
1

선 그래프를 만들어 응용 프로그램에서 나중에 사용할 이미지로 저장하려고합니다. 그러나 그래프를 만들고 레이아웃에서 먼저 표시하지 않고 저장하는 방법을 찾을 수 없습니다. 사용하여 저장 한 후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()); 

내가 레이아웃의 chartContainer를 생략하면,하지만 난 IllegalStateException가 얻을 NullPointerException에 의해 발생합니다.

어떻게 해결할 수 있습니까 ?? 감사합니다.

+0

어떻게 숨겨진 스크린을 캡처합니까? –

+2

화면을 보지 않고는 불가능합니다. – keshav

답변

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(); 

} 
    }); 
관련 문제