Zrzuty ekranu w aplikacji android pomagają w promocji naszej aplikacji, ale i też w postępach naszej pracy czy w testach. W tym wpisie zobaczysz, w jaki prosty sposób wykonać zrzut ekranu w aplikacji bez dodatkowych bibliotek.

1. Rodzaje zrzutów ekranów.

Możemy wyróżnić następujące typy zrzutów ekranów:

  • Zrzut ekranu tylko aplikacji.
  • Zrzut konkretnego widoku.
  • Pełny zrzut ekranu.

2. Zrzut ekranu w aplikacji android.

Cały kod sprowadza się do:

Teraz zmienną bitmap możemy zapisać do pliku lub wyświetlić. Efekt będzie następujący:Zrzut ekranu w aplikacji android

Jak widzisz nie widzimy tutaj górnej belki z powiadomieniami, godziną itp. Widać ekran tylko aplikacji.

3. Zrzut ekranu konkretnego widoku.

Możesz również wykonać zdjęcie konkretnego widoku np.: Button. W tym celu wystarczy zamienić:

na:

Reszta kodu bez zmian. Efekt:Zrzut widoku w aplikacji android

Może się też tak zdarzyć, że obiekt, któremu chcemy zrobić zrzut ekranu jest ukryty lub niewidoczny. Nie wystarczy tylko pobrać widok. Problem polega na tym, że szerokość i wysokość ukrytych widoków wynosi 0. Trzeba użyć metody pomiaru widoku. W tym celu zmodyfikujemy nasz kod na coś takiego:

4. Pełny zrzut ekranu.

Takie zdjęcie wraz z paskiem górnym możemy wykonać za pomocą Media Projection Manager. Przykładowy projekt możemy zobaczyć tutaj.

5. Blokada zrobienia zrzutu ekranu.

Zdarza się też, że nie chcemy, aby inne aplikacje zrobiły nam zdjęcie. Możemy ustawić odpowiednią flagę przed wywołaniem setContentView(). Oto kod, który ustawia odpowiednią flagę:

W takim przypadku dostaniemy komunikat:
Blokada zrzutu ekranu w aplikacji androidNiestety nie każda aplikacja respektuje tę flagę. Jeśli użytkownik posiada roota i tak zrobi zdjęcie. Mimo to warto czasem się zabezpieczyć, jeżeli wymaga tego aplikacja np.: do haseł.

6. Podsumowanie.

Już wiesz, w jaki prosty sposób tworzyć zrzuty ekranu w aplikacji android. Oczywiście takie zdjęcia również przydają się podczas testów automatycznych i pomoże w wyeliminowaniu wielu błędów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *