Я пытаюсь сохранить graphView как изображение. Есть две вещи, которые происходят, которые не ожидаются. Прежде всего, файл не создается на SD-карте, а создается во внутренней памяти телефона. Во-вторых, созданный файл занимает 0B памяти. То есть, это пустой файл. При открытии он говорит: «невозможно создать эскиз»Проблема с сохранением GraphView как изображения
Я даю код ниже. Это было взято из примера с этого сайта.
public class MainActivity extends AppCompatActivity {
LinearLayout ll;
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainn);
final GraphView graphView = (GraphView) findViewById(R.id.graph);
LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(new DataPoint[]{
new DataPoint(0, 1),
new DataPoint(1, 5),
new DataPoint(2, 3),
new DataPoint(3, 2),
new DataPoint(4, 6)
});
graphView.addSeries(series);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.myLayout);
rl.setDrawingCacheEnabled(true);
bitmap = rl.getDrawingCache();
rl.setDrawingCacheEnabled(false);
File file,f;
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
{
file =new File(android.os.Environment.getExternalStorageDirectory(),"GRAPHS_PLOTTED");
if(!file.exists())
{
file.mkdirs();
}
try{
f = new File(file.getAbsolutePath()+file.separator+ "name"+".jpg");
FileOutputStream ostream = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream);
ostream.close();
}
catch (Exception e){
e.printStackTrace();
}
}
}
}
Может кто-нибудь предложить некоторые решения?
Я считаю, что проблема is-image формируется еще до построения графика. @ Nitin Jain ... Я попытался использовать JPEG вместо PNG .... Я попытался поставить «rl.setDrawingCacheEnabled (false)»; в конце, как вы сказали ... не повезло. – sp9
ОК, если это так. Попробуйте новый обработчик(). PostDelayed (новый Runnable() { callMethodToSaveImage(); }, 5000); –
@ Nitin Jain ... Еще не повезло – sp9