Screenshot einer ScrollView

  • 2 Antworten
  • Letztes Antwortdatum
L

lumo2707

Neues Mitglied
0
Hey,

wie kann ich einen Screenshot einer kompletten ScrollView machen?
Wenn ich die View nehme, dann macht er nur den Screenshot, so wie es am Display angezeigt wird!

Hier mein Code:

activity_view = v.getRootView();
View v1 = activity_view.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap b = v1.getDrawingCache();
String extr = Environment.getExternalStorageDirectory().toString();
File myPath = new File(extr, "Screenshot.jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(myPath);
b.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
//MediaStore.Images.Media.insertImage(getContentResolver(), b, "Screen", "screen");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Danke schon mal!
 
Da muss man sicher tricksen: Du könntest aber dem Layout oder dem Scrollview vorher hart die richtige Größe verpassen. Oder programmgesteuert scrollen und die Screenshots zusammenbauen.
 
LinearLayout layout = // Hier kommt das LinearLayout rein
layout.setDrawingCacheEnabled(true);
layout.setDrawingCacheQuality(LinearLayout.DRAWING_CACHE_QUALITY_HIGH);
layout.buildDrawingCache();
Bitmap bitmap = layout.getDrawingCache();

File file = new File(Environment.getExternalStorageDirectory().toString() + "/sPenimg.png");
FileOutputStream ostream;
try {
ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.flush();
ostream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

So funktioniert es!
Innerhalb der ScrollView hab ich ein LinearLayout gepackt.
 
Zurück
Oben Unten