<obsługuje-ekrany>

składnia:
<supports-screens android:resizeable=["true"| "false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>
zawarte w:
<manifest>
description:

Umożliwia określenie rozmiarów ekranów obsługiwanych przez aplikację i włączenie trybu zgodności z ekranami. jest większy niż ta, którą obsługuje Twoja aplikacja. Ważne jest, aby zawsze używać tego elementu w w celu określenia rozmiarów ekranów, które obsługuje Twoja aplikacja.

Uwaga: tryb zgodności ekranu nie jest trybem w których ma działać Twoja aplikacja. Powoduje to pikselizację i rozmycie interfejsu ze względu na powiększenie. Aby aplikacja dobrze działała na dużych ekranach, postępuj zgodnie z Omówienie zgodności ekranu oraz udostępnić alternatywne układy dla różnych rozmiarów ekranu.

Aplikacja „obsługuje” danego rozmiaru ekranu, jeśli zostanie prawidłowo przeskalowany tak, aby wypełnił cały ekran. Normalne zmiany rozmiaru stosowane przez system sprawdzają się w większości aplikacji i nie trzeba niczego robić aby aplikacja działała na ekranach większych niż w telefonie.

Jest to jednak często ważne jest, aby zoptymalizować UI aplikacji pod kątem różnych rozmiarów ekranów, udostępniając alternatywy zasobów układu. Możesz na przykład zmienić układ aktywności na tablecie niż na tablecie.

Jeśli jednak aplikacja nie działa dobrze po dostosowaniu rozmiaru do różnych rozmiarów ekranu, może używać atrybutów elementu <supports-screens>, aby kontrolować, czy jest rozpowszechniana tylko na mniejszych ekranach, jej interfejs jest przeskalowany w górę. dopasować na większych ekranach, korzystając z trybu zgodności ekranu systemu.

Jeśli nie dostosowane do większych ekranów, a normalna zmiana rozmiaru nie zapewnia tryb zgodności z ekranem skaluje interfejs, emulując normalny rozmiar. ekranu i średniej gęstości. Następnie obraz jest powiększony tak, aby wypełniał cały ekran. Pamiętaj, że powodują pikselizację i rozmycie interfejsu, dlatego lepiej jest zoptymalizować go pod kątem dużych ekrany.

Uwaga: w Androidzie 3.2 wprowadzono nowe atrybuty: android:requiresSmallestWidthDp, android:compatibleWidthLimitDp i android:largestWidthLimitDp. Jeśli opracowujesz aplikację na Androida 3.2 lub nowszego, użyj tych atrybutów do zadeklarowania obsługi rozmiaru ekranu zamiast atrybutów na podstawie uogólnionych rozmiarów ekranu.

Informacje o trybie zgodności ekranu

Tryb zgodności ekranu jest zalecanym rozwiązaniem w przypadku aplikacji, które nie są poprawnie w połączeniu z większymi ekranami. Nie jest to tryb, w którym aplikacja ma działać, ponieważ może zaoferować złe wrażenia użytkowników. Istnieją 2 wersje trybu zgodności ekranu oparte na na wersji urządzenia, na której działa aplikacja.

Na urządzeniach z Androidem w wersjach od 1.6 do 3.1 system uruchamia aplikację jako „znaczek pocztowy”. okno. it emuluje ekran o rozdzielczości 320 dp x 480 dp z czarną ramką, która wypełnia pozostały obszar ekranu.

W Androidzie 3.2 i nowszych system rysuje układ tak samo jak na ekranie o rozdzielczości 320 dp x 480 dp, a następnie skaluje go w górę, by wypełnił ekran. Często powoduje to zakłócenia w interfejsie, np. rozmycie lub pikselizację.

Więcej informacji na temat prawidłowej obsługi różnych rozmiarów ekranu i uniknięcia używając trybu zgodności z ekranem, przeczytaj artykuł Omówienie zgodności ekranu.

atrybuty:
android:resizeable
Wskazuje, czy można zmienić rozmiar aplikacji w przypadku różnych rozmiarów ekranu. Ten atrybut jest "true". Jeśli zasada ma wartość "false", system uruchamia aplikację w trybie zgodności z ekranem na dużych ekrany.

Ten atrybut został wycofany. Został on wprowadzony, aby pomóc aplikacjom przejście z Androida 1.5 na 1.6, kiedy pojawiła się obsługa wielu ekranów. Nie używaj.

android:smallScreens
Wskazuje, czy aplikacja obsługuje format „small” z różnych formatów ekranów. Mały ekran to taki o mniejszym współczynniku proporcji niż „normalny” lub tradycyjnego ekranu HVGA. Aplikacja, która nie obsługa małych ekranów nie jest dostępna w przypadku urządzeń z małymi ekranami i usług zewnętrznych, takich jak Google Play, ponieważ dzięki której platforma może działać na mniejszym ekranie. To jest "true", autor: wartość domyślną.
android:normalScreens
Wskazuje, czy aplikacja obsługuje „normalny” Ekran i formatów. Tradycyjnie jest to średnia gęstość HVGA ekranu. WQVGA o małej gęstości i wysokiej gęstości uznawane za normalne. Domyślnie ten atrybut ma wartość "true".
android:largeScreens
Wskazuje, czy aplikacja obsługuje rozmiar „duży” z różnych formatów ekranów. Duży ekran to ekran, który jest znacznie większy. niż „normalny” ekranu telefonu. Dlatego może wymagać szczególnej ostrożności, ale może też wymagać zmiany rozmiaru interfejsu system, by wypełnić ekran.

Wartość domyślna różni się w niektórych wersjach, dlatego lepiej jest, jeśli jednoznacznie zadeklarować ten atrybut. Pamiętaj, że ustawienie to "false" zwykle włącza ekran trybu zgodności.

android:xlargeScreens
Wskazuje, czy aplikacja obsługuje „bardzo duże” z różnych formatów ekranów. Bardzo duży ekran to ekran, który jest znacznie większy. niż „duży”, np. tabletu lub innego urządzenia. Może wymagać szczególnej ostrożności ale może też wymagać zmiany rozmiaru interfejsu system, by wypełnić ekran.

Wartość domyślna różni się w niektórych wersjach, dlatego lepiej jest, jeśli jednoznacznie zadeklarować ten atrybut. Pamiętaj, że ustawienie to "false" zwykle włącza ekran trybu zgodności.

Ten atrybut został wprowadzony w interfejsie API na poziomie 9.

android:anyDensity
Wskazuje, czy aplikacja zawiera zasoby do umieszczenia na dowolnym ekranie gęstość danych.

W przypadku aplikacji obsługujących Androida 1.6 (poziom interfejsu API 4) lub nowszego jest to "true" domyślnie. Nie ustawiaj wartości "false", chyba że masz absolutną pewność, jest niezbędna do działania aplikacji. Wyłączenie tej funkcji może być konieczne tylko wtedy, jest to, że aplikacja bezpośrednio modyfikuje mapy bitowe. Więcej informacji znajdziesz w artykule Omówienie zgodności ekranu.

android:requiresSmallestWidthDp
Określa minimalną wartość smallestWidth wymaganą przez aplikację. smallestWidth to najkrótszy wymiar miejsca na ekranie (w jednostkach: dp), które musi być dostępne dla interfejsu użytkownika aplikacji. To znaczy, jest to najkrótszy z 2 wymiarów dostępnego ekranu.

Urządzenie jest uznawane za urządzenie zgodne z Twoją aplikacją, wartość smallestWidth urządzenia musi być równa lub większa . Zazwyczaj wartością tej opcji jest „najmniejsza szerokość”. który jest obsługiwany przez Twój układ, niezależnie od bieżącej orientacji ekranu.

Na przykład typowy ekran telefonu ma rozdzielczość smallestWidth 320 dp, a 7-calowy tablet ma smallestWidth o rozdzielczości 600 dp, a w przypadku tabletu 10-calowego jego wartość to smallestWidth, czyli 720 dp. Wartości te są zwykle smallestWidth, ponieważ są one najkrótszym wymiarem dostępnego miejsca na ekranie.

Rozmiar, z jakim porównywana jest Twoja wartość, uwzględnia dekoracje ekranu i system Interfejs. Jeśli na przykład urządzenie ma na wyświetlaczu stałe elementy UI, system deklaruje urządzenia smallestWidth o rozmiarze mniejszym niż rzeczywisty rozmiar ekranu, ponieważ to pikseli ekranu, które są niedostępne dla Twojego interfejsu.

Jeśli aplikacja prawidłowo dopasowuje rozmiar do mniejszych ekranów, „mały” rozmiar lub minimalna szerokość 320 dp, nie trzeba używać tego atrybutu. W przeciwnym razie użyj wartości tego atrybutu, która pasuje do najmniejszej wartości używanej przez aplikację dla argumentu kwalifikator najmniejszej szerokości ekranu (sw<N>dp).

Uwaga: system Android nie zwraca na to uwagi. przez co nie ma on wpływu na działanie aplikacji w czasie działania. Zamiast tego używany jest aby włączyć filtrowanie aplikacji w usługach takich jak Google Play. Pamiętaj jednak: Google Play obecnie nie obsługuje tego atrybutu w odniesieniu do filtrowania na urządzeniach z Androidem 3.2. Jeśli aplikacja nie obsługuje innych atrybutów rozmiaru, na małych ekranach.

Ten atrybut został wprowadzony na poziomie interfejsu API 13.

android:compatibleWidthLimitDp
Ten atrybut umożliwia włączenie trybu zgodności ekranu jako opcjonalna funkcja przez określenie maksymalnej „najmniejszej szerokości ekranu” w przypadku których aplikacja projektu Google. Jeśli najmniejsza część dostępnego ekranu urządzenia jest większa niż wartość podana tutaj, użytkownicy nadal będą mogli zainstalować Twoją aplikację, ale będą wyświetlane w trybie zgodności z ekranem.

Według domyślnie, tryb zgodności z ekranem jest wyłączony, a układ zmienia rozmiar, by dopasować jak zwykle. Na pasku systemu dostępny jest przycisk, który umożliwia użytkownikowi przełączanie ekranu trybu zgodności.

Jeśli aplikacja jest zgodna ze wszystkimi rozmiarami ekranów, a jej układ zmienia rozmiar, nie będzie można muszą używać tego atrybutu.

Uwaga: obecnie tryb zgodności ekranu emuluje tylko telefon. o szerokości 320 dp, więc tryb zgodności z ekranem nie jest stosowany, jeśli wartość atrybutu Wartość android:compatibleWidthLimitDp jest większa niż 320.

Ten atrybut został wprowadzony na poziomie interfejsu API 13.

android:largestWidthLimitDp
Ten atrybut umożliwia wymuszanie włączenia trybu zgodności ekranu przez określenie maksymalną „najmniejszą szerokość ekranu” dla których przeznaczona jest Twoja aplikacja. Jeśli najmniejsza strona argumentu dostępny ekran urządzenia jest większy niż wskazana tutaj wartość, aplikacja działa na ekranie trybu zgodności, a użytkownik nie może go wyłączyć.

Jeśli aplikacja jest zgodna ze wszystkimi rozmiarami ekranów, a jej układ zmienia rozmiar, nie będzie można muszą używać tego atrybutu. Jeśli nie, najpierw użyj atrybutu android:compatibleWidthLimitDp. Użyj android:largestWidthLimitDp tylko wtedy, gdy aplikacja nie działa prawidłowo, gdy dostosowane do większych ekranów. Tryb zgodności z ekranem to jedyny sposób korzystania z aplikacji.

Uwaga: obecnie tryb zgodności ekranu emuluje tylko telefon. o szerokości 320 dp, więc tryb zgodności z ekranem nie jest stosowany, jeśli wartość atrybutu Wartość android:largestWidthLimitDp jest większa niż 320.

Ten atrybut został wprowadzony na poziomie interfejsu API 13.

wprowadzone w:
Poziom API 4
zobacz też: