2017-08-31 4 views
1

Dans mon application Android, j'ai plusieurs vues en cours d'exécution en même temps: ImageView, VideoView et WebView. Cependant, lorsque je prends une capture d'écran via le code, le VideoView est noir, ce qui n'est pas le cas lorsque je capture manuellement une capture d'écran en utilisant un appareil Android.Pourquoi VideoView est noir lors de la capture d'écran de plusieurs vues sous Android via le code?

Pourquoi est-ce ainsi?

Code utilisé:

try { 
     View view = getActivity().getWindow().getDecorView().getRootView(); 
     view.setDrawingCacheEnabled(true); 

     Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); 
     view.setDrawingCacheEnabled(false); 

     File imageFile = new File(mPath); 

     FileOutputStream outputStream = new FileOutputStream(imageFile); 
     int quality = 100; 
     bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream); 
     outputStream.flush(); 
     outputStream.close(); 
    } catch (Throwable e) { 
     e.printStackTrace(); 
    } 

Résultat capture d'écran: Example of screenshot

+0

'VideoView' ne pas utiliser le cache de dessin. Le mécanisme de capture d'écran du système n'utilise pas votre code pour faire une capture d'écran. – CommonsWare

+0

Copie possible de [VideoView getDrawingCache renvoie noir] (https://stackoverflow.com/questions/5278707/videoview-getdrawingcache-is-returning-black) –

Répondre