pemko
Fortgeschrittenes Mitglied
- 3
Hallo zusammen
Ich wollte mal etwas ausprobieren: und zwar: wie speichere ich ein bild, welches mehrere Views darüber mit Kreuzen hat?
EDIT: Die frage ist ein bisschen wie kriege ich die canvas ins bitmap? (setBitmap etc. ging nicht)
Die Kreuze sind in einere ArrayList (alView) als View gespeichert. (für späteres wiederauslesen etc.)
Die flView fügt diese der View hinzu:
alView.add(new Cross(v.getContext(), x - 8,
y + 10, 30));
flView.addView(alView.get(alView.size()-1));
angezeigt wird alles richtig auf dem display, aber wie könnte ich dies nun in beispiel.jpg speichern?
folgendermassen geht es nicht:
// Alle Kreuze mit for schlaufe in Canvas speichern
for () {
c.drawCircle(alView.get(i).getX(), alView.get(i).getY(), 30, paint);
}
File path = Environment.getExternalStorageDirectory();
File file = new File(path, "Beispiel.jpg");
flView.setBackgroundResource(R.drawable.beispiel_hintergrund);
flView.draw(c);
fos = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
Ich wollte mal etwas ausprobieren: und zwar: wie speichere ich ein bild, welches mehrere Views darüber mit Kreuzen hat?
EDIT: Die frage ist ein bisschen wie kriege ich die canvas ins bitmap? (setBitmap etc. ging nicht)
Die Kreuze sind in einere ArrayList (alView) als View gespeichert. (für späteres wiederauslesen etc.)
Die flView fügt diese der View hinzu:
alView.add(new Cross(v.getContext(), x - 8,
y + 10, 30));
flView.addView(alView.get(alView.size()-1));
angezeigt wird alles richtig auf dem display, aber wie könnte ich dies nun in beispiel.jpg speichern?
folgendermassen geht es nicht:
// Alle Kreuze mit for schlaufe in Canvas speichern
for () {
c.drawCircle(alView.get(i).getX(), alView.get(i).getY(), 30, paint);
}
File path = Environment.getExternalStorageDirectory();
File file = new File(path, "Beispiel.jpg");
flView.setBackgroundResource(R.drawable.beispiel_hintergrund);
flView.draw(c);
fos = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
Zuletzt bearbeitet: