In Ihrer View können Sie den folgenden Code ausführen, der einen Screenshot erstellt. Ich habe nicht versucht, es in OnCreate()
vor, so dass Sie möglicherweise testen müssen, um sicherzustellen, dass die Ansicht vollständig gerendert wurde.
* Bearbeiten: Nach this post können Sie Probleme haben, diesen Code in OnCreate()
zu laufen, so dass Sie einen besseren Ort finden müssen. Ich konnte nicht herausfinden, auf welchen Post der Benutzer in dem von ihm geposteten Link Bezug genommen hatte.
* Edit # 2: gerade herausgefunden, dass Compress()
nimmt nicht den Qualitätsparameter (die als 0
unten aufgeführt wird) in Betracht, da PNG verlustfrei ist, aber wenn Sie das Format JPEG zum Beispiel ändern, dann können Sie möchten um den Qualitätsparameter zu erhöhen, da Ihr Bild wie Müll aussieht.
public byte[] SaveImage() {
DrawingCacheEnabled = true; //Enable cache for the next method below
Bitmap bitmap = GetDrawingCache(true); //Gets the image from the cache
byte[] bitmapData;
using(MemoryStream stream = new MemoryStream()) {
bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
bitmapData = stream.ToArray();
}
return bitmapData;
}
Mögliches Duplikat von [Wie in Android um einen Screenshot aufzunehmen programmatisch?] (Http://stackoverflow.com/questions/2661536/how-to-programmatically-take-a-screenshot-in-android) –