2017-09-20 1 views
0

Ein Moment, wenn ich auf eine Benachrichtigungsleiste klicke, möchte ich App den aktuellen Bildschirm erfassen. Aber ich möchte die App erfassen, nachdem die Benachrichtigungsleiste verschwindet. Und ich möchte, dass der erfasste Bildschirm unmittelbar danach gespeichert und geladen wird. Wie soll ich es tun?Ein Moment, wenn ich auf eine Benachrichtigungsleiste klicke, möchte ich App erfassen aktuellen Bildschirm

+0

Können Sie uns zumindest zeigen, was Sie bisher getan haben? –

Antwort

0

Zum Beispiel Code nur tun Vorlage von "neue Vollbild-Aktivität" Dies wird Ihnen zeigen, wie Symbolleiste anzeigen und ausblenden, Vollbild zu machen.

Dann ändern Sie einfach den Code, so dass es nicht auf einen Timer passiert, sondern verschieben Sie es auf einen Touch-Listener, die Sie in der Symbolleiste selbst platzieren.

Schließlich, sobald die Fade verschwunden ist (was Sie sofort tun können, wenn Sie wollen), dann machen Sie einfach Ihren eigenen Screenshot. Es gibt viele große Bibliotheken, die dies für Sie tun, wenn Sie wollen oder können Sie einfach Code verwenden, die ich in einer Klasse habe ich genannt Imagehelper wie folgt aus:

public static Bitmap takeScreenshotOfView(Activity context, Bitmap.CompressFormat compressFormat){ 
     Bitmap screenshot = null; 

    try { 
     // create bitmap screen capture 
     View v1 = context.getWindow().getDecorView().getRootView(); 
     v1.setDrawingCacheEnabled(true); 
     screenshot = Bitmap.createBitmap(v1.getDrawingCache()); 
     v1.setDrawingCacheEnabled(false); 

     File imageFile = new File(context.getFilesDir() + File.separator + "A35_temp" + File.separator + "screenshot_temp"); 

     FileOutputStream outputStream = new FileOutputStream(imageFile); 
     int quality = 100; 

     screenshot.compress(compressFormat, quality, outputStream); 
     outputStream.flush(); 
     outputStream.close(); 

    } catch (Throwable e) { 
     // Several error may come out with file handling or OOM 
     e.printStackTrace(); 
    } 

    return screenshot; 
} 

Und es genau wie verwenden:

Bitmap screenshot = ImageHelper.takeScreenshotOfView(this, Bitmap.CompressFormat.JPEG); 

Als nächstes starten Sie eine FullScreen-Aktivität neu für die Vorschau, aber standardmäßig mit Toolbar ausgeblendet und Vollbild-ImageView mit Ihren Teilen Overlay-Schaltflächen oder was auch immer Sie wollen, am unteren Rand.

Verwandte Themen