1
graphViewを画像として保存しようとしています。 期待されていない2つのことが起こっています。 最初に、ファイルがSDカードに作成されていないということです。代わりに、電話機の内部ストレージにファイルが作成されています。 2つ目は、作成されたファイルが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();
}
}
}
}
誰もが解決策を提案できますか?
私は、グラフがプロットされる前であっても問題があると信じています。 @ Nitin Jain ... PNGの代わりにJPEGを使ってみました.... "rl.setDrawingCacheEnabled(false);"あなたが言ったように最後に..運がない。 – sp9
これは大丈夫ですか? 新しいHandler()を試してみてください。postDelayed(new Runnable(){ callMethodToSaveImage(); }、 5000); –
@ Nitin Jain ...まだ運がない – sp9