Ekran görüntülerini yakalama konusunda birçok soru olduğunu biliyorum ve bunların çoğunu kontrol ettim. Aynı cevaba sahipler (küçük kod varyasyonları ile).Ekran görüntüsü nasıl alınır?
Ben ekran görüntüsü yakalama yöntemi vardır:
@NonNull
public static Bitmap takeScreenShot(Window window) throws IOException {
final View rootView = window.getDecorView().getRootView();
final boolean drawingCacheEnabled = rootView.isDrawingCacheEnabled();
rootView.setDrawingCacheEnabled(true);
try {
return Bitmap.createBitmap(rootView.getDrawingCache());
} finally {
rootView.setDrawingCacheEnabled(drawingCacheEnabled);
}
}
Ve bu gibi kullanabilirsiniz: takeScreenShot(getActivity().getWindow())
bu yaklaşım çeşitli sınırlamalar vardır Ancak: Bazı diyaloglar varsa
- Ekranda ekran görüntüsünde yakalanmayacaklar.
- Donanım hızlandırılmış görünümleriyle çalışır mı? belgelerine göre: donanım hızlandırıcısı
çekme önbellek sağlayan açıldığındasistem flag
- ekran görüntüsü göz ardı hızlanma için bir
farklı bir mekanizma kullandığından oluşturma üzerinde hiçbir etkisi yoktur GLviews yerine siyah kutular içerir. (ör. uygulamanızın haritaları olduğunda.). 2 puanlık bir sonuç gibi görünüyor.
Benim sorum şu ki, en azından bazı sorunlarımı çözebilecek köklenme olmadan herhangi bir çözüm var mı?
Ben diyaloglar yakalamak istiyorum: https://github.com/AndroidDeveloperLB/ScreenshotSample
Ayrıca şu kullanışlı okuma olacak –