na przykład użyłeś poniżej dimens.xml w wartościach.
W folderze innych wartości musisz zmienić wartości rozmiaru tekstu.
W przypadku pierwszej generacji tabletów z systemem Android 3.0 właściwym sposobem zadeklarowania układów tabletów było umieszczenie ich w katalogu z kwalifikatorem konfiguracji xlarge (na przykład res / layout-xlarge /). Aby dostosować się do innych typów tabletów i rozmiarów ekranów - w szczególności tabletów 7-calowych - Android 3.2 wprowadza nowy sposób określania zasobów dla bardziej dyskretnych rozmiarów ekranów. Nowa technika opiera się na ilości miejsca wymaganego przez układ (np. 600 dp szerokości), zamiast próbować dopasować układ do uogólnionych grup rozmiarów (takich jak duże lub bardzo duże).
Powodem, dla którego projektowanie tabletów 7-calowych jest trudne w przypadku korzystania z uogólnionych grup rozmiarów, jest fakt, że tablet 7-calowy należy technicznie do tej samej grupy co telefon 5-calowy (duża grupa). Chociaż te dwa urządzenia są pozornie blisko siebie , ilość miejsca na interfejs użytkownika aplikacji jest znacząco różna, podobnie jak styl interakcji użytkownika. Dlatego ekrany o przekątnej 7 i 5 cali nie powinny zawsze mieć tego samego układu. Aby umożliwić Ci zapewnienie różnych układów dwa rodzaje ekranów, system Android umożliwia teraz określanie zasobów układu w oparciu o szerokość i / lub wysokość, które są faktycznie dostępne dla układu aplikacji, określone w jednostkach dp.
Na przykład po zaprojektowaniu układu, którego chcesz używać dla urządzeń typu tablet, możesz stwierdzić, że układ przestaje działać dobrze, gdy szerokość ekranu jest mniejsza niż 600 dp. W ten sposób ten próg staje się minimalnym rozmiarem wymaganym dla układu tabletu. W związku z tym można teraz określić, że te zasoby układu powinny być używane tylko wtedy, gdy dla interfejsu użytkownika aplikacji jest dostępne co najmniej 600 dp szerokości.
Powinieneś albo wybrać szerokość i zaprojektować ją jako rozmiar minimalny, albo przetestować najmniejszą szerokość obsługiwaną przez twój układ po jego ukończeniu.
Uwaga: Pamiętaj, że wszystkie liczby używane w tych nowych interfejsach API rozmiaru są niezależnymi od gęstości wartościami pikseli (dp), a wymiary układu powinny być zawsze definiowane za pomocą jednostek dp, ponieważ zależy Ci na ilości miejsca na ekranie dostępnej po systemie uwzględnia gęstość ekranu (w przeciwieństwie do używania rozdzielczości surowych pikseli). Aby uzyskać więcej informacji na temat pikseli niezależnych od gęstości, przeczytaj Terminy i pojęcia we wcześniejszej części tego dokumentu. Korzystanie z nowych kwalifikatorów rozmiaru
Różne konfiguracje zasobów, które możesz określić na podstawie miejsca dostępnego dla twojego układu, podsumowano w tabeli 2. Te nowe kwalifikatory zapewniają większą kontrolę nad określonymi rozmiarami ekranu obsługiwanymi przez aplikację w porównaniu z tradycyjnymi grupami rozmiarów ekranu (mały, normalny, duży i bardzo duży).
Uwaga: Rozmiary określone za pomocą tych kwalifikatorów nie są rzeczywistymi rozmiarami ekranu. Rozmiary dotyczą raczej szerokości lub wysokości w jednostkach dp, które są dostępne w oknie Twojej aktywności. System Android może wykorzystywać część ekranu dla interfejsu użytkownika systemu (na przykład pasek systemowy u dołu ekranu lub pasek stanu u góry), więc część ekranu może nie być dostępna dla Twojego układu. Dlatego deklarowane rozmiary powinny w szczególności dotyczyć rozmiarów potrzebnych do wykonania czynności - system uwzględnia wszelkie miejsce używane przez interfejs użytkownika systemu podczas deklarowania, ile miejsca zapewnia układ. Uważaj również, że pasek akcji jest uważany za część przestrzeni okna aplikacji, chociaż Twój układ go nie deklaruje, więc zmniejsza przestrzeń dostępną dla układu i musisz to uwzględnić w swoim projekcie.
Tabela 2. Nowe kwalifikatory konfiguracji dla rozmiaru ekranu (wprowadzone w Androidzie 3.2). Konfiguracja ekranu Wartości kwalifikatorów Opis smallestWidth swdp
Przykłady: sw600dp sw720dp
Podstawowy rozmiar ekranu, na co wskazuje najkrótszy wymiar dostępnego obszaru ekranu. Mówiąc dokładniej, najmniejsza szerokość urządzenia to najkrótsza z dostępnej wysokości i szerokości ekranu (możesz też myśleć o niej jako o „najmniejszej możliwej szerokości” ekranu). Możesz użyć tego kwalifikatora, aby upewnić się, że niezależnie od bieżącej orientacji ekranu aplikacja ma co najmniej dps szerokości dostępnej dla jej interfejsu użytkownika.
Na przykład, jeśli twój układ wymaga, aby jego najmniejszy wymiar obszaru ekranu zawsze wynosił co najmniej 600 dp, możesz użyć tego kwalifikatora do utworzenia zasobów układu, res / layout-sw600dp /. System użyje tych zasobów tylko wtedy, gdy najmniejszy dostępny rozmiar ekranu to co najmniej 600 dp, niezależnie od tego, czy strona 600 dp jest wysokością czy szerokością postrzeganą przez użytkownika. Najmniejsza szerokość to stały rozmiar ekranu charakterystyczny dla urządzenia; najmniejsza szerokość urządzenia nie zmienia się, gdy zmienia się orientacja ekranu.
Najmniejsza szerokość urządzenia uwzględnia dekoracje ekranu i interfejs użytkownika systemu. Na przykład, jeśli urządzenie ma pewne trwałe elementy interfejsu użytkownika na ekranie, które uwzględniają przestrzeń wzdłuż osi najmniejszej szerokości, system zadeklaruje najmniejszą szerokość jako mniejszą niż rzeczywisty rozmiar ekranu, ponieważ są to piksele ekranu niedostępne dla interfejsu użytkownika.
Jest to alternatywa dla uogólnionych kwalifikatorów rozmiaru ekranu (small, normal, large, xlarge), która umożliwia zdefiniowanie dyskretnej liczby dla efektywnego rozmiaru dostępnego dla interfejsu użytkownika. Użycie funkcji najmniejsza szerokość do określenia ogólnego rozmiaru ekranu jest przydatne, ponieważ szerokość jest często czynnikiem napędzającym projektowanie układu. Interfejs użytkownika często przewija się w pionie, ale ma dość twarde ograniczenia dotyczące minimalnej wymaganej przestrzeni w poziomie. Dostępna szerokość jest również kluczowym czynnikiem przy określaniu, czy zastosować układ z jednym panelem w przypadku telefonów, czy układ z wieloma panelami w przypadku tabletów. Dlatego prawdopodobnie najbardziej zależy Ci na tym, jaka najmniejsza możliwa szerokość będzie na każdym urządzeniu. Dostępna szerokość ekranu wdp
Przykłady: w720dp w1024dp
Określa minimalną dostępną szerokość w jednostkach dp, przy której zasoby powinny być używane - zdefiniowaną przez wartość. Odpowiednia dla systemu wartość szerokości zmienia się, gdy orientacja ekranu zmienia się z poziomej na pionową, aby odzwierciedlić bieżącą rzeczywistą szerokość dostępną dla interfejsu użytkownika.
Jest to często przydatne do określenia, czy użyć układu z wieloma panelami, ponieważ nawet na tablecie często nie chcesz mieć tego samego układu z wieloma panelami w orientacji pionowej, jak w przypadku poziomego. W związku z tym można użyć tego do określenia minimalnej szerokości wymaganej dla układu, zamiast używać razem kwalifikatorów rozmiaru ekranu i orientacji. Dostępna wysokość ekranu hdp
Przykłady: h720dp h1024dp itp.
Określa minimalną wysokość ekranu w jednostkach dp, przy której zasoby powinny być używane - zdefiniowaną przez wartość. Odpowiednia dla systemu wartość wysokości zmienia się, gdy orientacja ekranu zmienia się z poziomej na pionową, aby odzwierciedlić bieżącą rzeczywistą wysokość dostępną dla interfejsu użytkownika.
Użycie tego do zdefiniowania wysokości wymaganej przez układ jest przydatne w taki sam sposób, jak wdp do definiowania wymaganej szerokości, zamiast używania zarówno rozmiaru ekranu, jak i kwalifikatorów orientacji. Jednak większość aplikacji nie potrzebuje tego kwalifikatora, biorąc pod uwagę, że interfejsy użytkownika często przewijają się w pionie, a zatem są bardziej elastyczne w zależności od dostępnej wysokości, podczas gdy szerokość jest bardziej sztywna.
Chociaż korzystanie z tych kwalifikatorów może wydawać się bardziej skomplikowane niż używanie grup rozmiarów ekranu, w rzeczywistości powinno być prostsze po określeniu wymagań dotyczących interfejsu użytkownika. Podczas projektowania interfejsu użytkownika najważniejszą rzeczą, na której prawdopodobnie zależy, jest rzeczywisty rozmiar, przy którym aplikacja przełącza się między interfejsem w stylu telefonu a interfejsem w stylu tabletu, który używa wielu paneli. Dokładny punkt tego przełącznika będzie zależał od konkretnego projektu - być może potrzebujesz szerokości 720 dp dla układu tabletu, być może wystarczy 600 dp, 480 dp lub pewna liczba między nimi. Korzystając z tych kwalifikatorów w tabeli 2, masz kontrolę nad dokładnym rozmiarem, w jakim zmienia się układ.
Aby uzyskać więcej informacji na temat kwalifikatorów konfiguracji rozmiaru, zobacz dokument Providing Resources. Przykłady konfiguracji
Aby ułatwić kierowanie niektórych projektów na różne typy urządzeń, poniżej podajemy kilka danych o typowych szerokościach ekranu:
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
Korzystając z kwalifikatorów rozmiaru z tabeli 2, aplikacja może przełączać się między różnymi zasobami układu dla telefonów i tabletów, używając dowolnej liczby dla szerokości i / lub wysokości. Na przykład, jeśli 600 dp to najmniejsza dostępna szerokość obsługiwana przez układ tabletu, możesz podać te dwa zestawy układów:
res / layout / main_activity.xml # Dla telefonów res / layout-sw600dp / main_activity.xml # Dla tabletów
W takim przypadku najmniejsza szerokość dostępnego miejsca na ekranie musi wynosić 600 dp, aby można było zastosować układ tabletu.
W innych przypadkach, w których chcesz bardziej dostosować swój interfejs użytkownika, aby rozróżnić rozmiary, takie jak tablety 7 ”i 10”, możesz zdefiniować dodatkowe układy o najmniejszej szerokości:
res / layout / main_activity.xml # Dla telefonów (mniejszych niż 600dp dostępnej szerokości) res / layout-sw600dp / main_activity.xml # Dla tabletów 7 ”(600dp szerokości i większych) res / layout-sw720dp / main_activity.xml
Na 10-calowe tablety (720dp szerokości i większe)
Należy zauważyć, że poprzednie dwa zestawy przykładowych zasobów używają kwalifikatora „najmniejszej szerokości”, swdp, który określa najmniejszą z dwóch stron ekranu, niezależnie od bieżącej orientacji urządzenia. W związku z tym użycie swdp jest prostym sposobem określenia całkowitego rozmiaru ekranu dostępnego dla twojego układu poprzez ignorowanie orientacji ekranu.
Jednak w niektórych przypadkach to, co może być ważne dla twojego układu, to dokładna wielkość aktualnie dostępnej szerokości lub wysokości. Na przykład, jeśli masz układ z dwoma panelami z dwoma fragmentami obok siebie, możesz go użyć, gdy ekran ma co najmniej 600 dp szerokości, niezależnie od tego, czy urządzenie jest w orientacji poziomej czy pionowej. W takim przypadku Twoje zasoby mogą wyglądać następująco:
res / layout / main_activity.xml # Dla telefonów (mniejszych niż 600dp dostępnej szerokości) res / layout-w600dp / main_activity.xml # Multi-panel (dowolny ekran z dostępną szerokością 600dp lub większą)
Zwróć uwagę, że drugi zestaw używa kwalifikatora „dostępnej szerokości”, wdp. W ten sposób jedno urządzenie może faktycznie korzystać z obu układów, w zależności od orientacji ekranu (jeśli dostępna szerokość wynosi co najmniej 600 dp w jednej orientacji i mniej niż 600 dp w drugiej orientacji).
Jeśli zależy Ci na dostępnej wysokości, możesz zrobić to samo, używając kwalifikatora hdp. Lub nawet połącz kwalifikatory wdp i hdp, jeśli chcesz być naprawdę konkretny.