Chciałbym wiedzieć, jaki jest kod, aby zrobić zrzut ekranu z bieżącego ekranu (po naciśnięciu przycisku) i zapisać go w galerii, ponieważ nie mam urządzenia z kartami SD. Więc chciałbym zapisać w domyślnej galerii. dziękujęjak programowo zrobić zrzut ekranu i zapisać go w galerii?
Odpowiedz
Jak skomentował 323go
, nie jest to możliwe, chyba że urządzenie jest zrootowane, naprawdę.
Ale jeśli tak, może to być dobra robota dla monkeyrunner lub jeśli używasz emulatora.
Bitmap bitmap;
View v1 = findViewById(R.id.rlid);// get ur root view id
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
To powinno wystarczyć.
Do zapisywania
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "test.jpg")
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
czy udzieliłeś powyższej odpowiedzi? – Raghunandan
Działa dobrze, dobra odpowiedź. Nie zapomnij dodać uprawnień lub nie będzie działać:
View v1 = L1.getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap bm = v1.getDrawingCache();
BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);
image = (ImageView) findViewById(R.id.screenshots);
image.setBackgroundDrawable(bitmapDrawable);
Dla pełnego kodu źródłowego przejść poniższym blogu
http://amitandroid.blogspot.in/2013/02/android-taking-screen-shots-through-code.html
Do przechowywania bitmapy, aby zobaczyć link poniżej
Spowoduje to zapisanie w galerii. Kod ustawia również ścieżkę obrazu. Jest to przydatne w przypadku funkcji Intent.SEND_ACTION i zamiarów e-mail.
String imagePath = null;
Bitmap imageBitmap = screenShot(mAnyView);
if (imageBitmap != null) {
imagePath = MediaStore.Images.Media.insertImage(getContentResolver(), imageBitmap, "title", null);
}
public Bitmap screenShot(View view) {
if (view != null) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
return null;
}
Wiem, że to kilka miesięcy, ale to działało ... z wyjątkiem .. - przechwycił zawartość widoku, ale NIE wyświetlił pod-widoków. Jak uzyskać bitmapę wszystkiego, co jest wyświetlane w górnej części widoku (czyli cały ekran)? – ByteSlinger
- 1. jak zrobić zrzut ekranu?
- 2. Jak programowo zrobić zrzut ekranu iPhone/iPad z Xamarin.iOS (C#)?
- 3. Jak zrobić zrzut ekranu z części UIView?
- 4. Jak programować zrzut ekranu?
- 5. Jak zrobić zrzut ekranu pod Waylandem?
- 6. Jak programowo wykonać zrzut ekranu (Swift, SpriteKit)
- 7. C#: jak zrobić zrzut części ekranu
- 8. Jak zrobić zrzut ekranu całej strony w Kątomierzu?
- 9. Jak zrobić zrzut ekranu pojedynczego elementu HTML w rozszerzeniu Chrome?
- 10. Jak zrobić zrzut ekranu części serwisu Google Maps? JavaScript
- 11. Zrzut ekranu w Haskell?
- 12. Jak zrobić zrzut ekranu z klipu wideo 50 minut w klipie i zrobić to szybko?
- 13. perl Gtk2 :: WebKit: jak zrobić zrzut ekranu na pełną stronę
- 14. Czy można zrobić zrzut ekranu widoku bez wyświetlania widoku?
- 15. Jak programowo uzyskać zrzut ekranu programu .Net WinForms?
- 16. Opóźnienie zrzut ekranu iOS
- 17. Android wykonuje zrzut ekranu
- 18. Jak przechwycić bieżący zrzut ekranu i użyć go ponownie w kodzie? (iPhone SDK)
- 19. Czy mogę programowo zrobić zrzut ekranu głównego, bez korzenia mojego urządzenia z Androidem?
- 20. jak zrobić keyspace jako zrzut w mandarynce?
- 21. Zrzut ekranu pokazuje czarny
- 22. Zrzut ekranu okna z pytonem:
- 23. Jak zrobić wybór obszaru ekranu, rysując na pulpicie, aby wykonać zrzut ekranu?
- 24. Zrzut ekranu ignoruje niektóre okna
- 25. Jak wykonać zrzut ekranu renderowanej strony HTML?
- 26. Zrzut ekranu Firebase Query zero?
- 27. Jak wyświetlić "Zrzut ekranu: dostępny przez ekran"?
- 28. Jak programowo zmienić wygaszacz ekranu?
- 29. Jak zrobić zrzut ekranu z pełną witryną za pomocą C# i WebKit.NET?
- 30. Uzyskaj zrzut ekranu kontrolki przeglądarki?
Nie jest to możliwe, chyba że urządzenie jest zrootowane. – 323go
próbować ten jeden ..... [http://stackoverflow.com/questions/7762643/android-take-screen-shot-programatically][1] [1]: http://stackoverflow.com/questions/7762643/android-take-screen-shot-programatycznie –