Dlaczego Nexus 7 może wyświetlać na ekranie o wiele więcej treści niż Galaxy Nexus?

30

Galaxy Nexus ma 1280 x 720, a tablet Nexus 7 ma 1280 x 800.

Zdaję sobie sprawę, że tablet jest fizycznie większy, ale jego rozdzielczość, a nie rozmiar wyświetlacza, decyduje o nieruchomości na ekranie.

Dlaczego Nexus 7 wydaje się wyświetlać o wiele więcej treści na ekranie?

EDYCJA - Moje pytanie nie brzmi „dlaczego zostało zaprojektowane w ten sposób”. Moje pytanie brzmi: „jak to możliwe, że jest w stanie wyświetlać więcej na ekranie”? PPI tego nie wyjaśnia.

Czy to tylko kwestia skalowania?

zacharyalexstern
źródło
Powinienem był zapytać „jak” jest w stanie to zrobić. Kiedy powiedziałem dlaczego, nie miałem na myśli „dlaczego zaprojektowali to w ten sposób”, miałem na myśli „dlaczego jest to technicznie możliwe”?
zacharyalexstern
Dlaczego to jest możliwe Poważnie? Zmniejszasz rzeczy.
RR
Ponadto, jeśli spojrzysz na build.prop tej pamięci ROM (jeśli masz zrzut pamięci ROM), tam jest linia ro.sf.lcd_density = xxx, która określa gęstość ekranu. Im wyższa wartość, tym więcej zmieści się na ekranie, podobnie odwrotnie, mniej może zmieścić się na ekranie.
t0mm13b
2
@zacharyalexstern: pytanie o to, jak to się robi, jest pytaniem programistycznym i nie jest tutaj tematem. Wypróbuj StackOverflow.
Lie Ryan,

Odpowiedzi:

44

Aby zrozumieć, dlaczego Nexus 7 może wyświetlać więcej treści niż Galaxy Nexus, najpierw wyjaśnię dwie koncepcje: gęstość ekranu i piksel niezależny od gęstości.

Ale zanim przejdziemy do szczegółów technicznych, warto wyjaśnić cele projektowe użycia pikseli niezależnych od gęstości. Celem jest zdefiniowanie interfejsu użytkownika o podobnym wymiarze na różnych urządzeniach, niezależnie od rozmiaru ekranu. Tak więc w tym przypadku wygląd menu jest taki sam w Galaxy Nexus i tablecie (obok siebie powinny wyglądać bardzo podobnie), ale ponieważ jeden ma większy ekran, można wyświetlić więcej treści. Projektant wybiera wygląd, który wygląda dobrze dla określonego rozmiaru (podstawą jest ekran o rozdzielczości 160 dpi), co w tym przypadku jest „symulowane” w urządzeniach o wyższej rozdzielczości.

Gęstość ekranu

Powszechnie określane jako dpi (kropki na cal). Android grupuje wszystkie rzeczywiste gęstości ekranu na cztery ogólne gęstości: niska (120), średnia (160), wysoka (240) i bardzo wysoka (320). Urządzenie takie jak Galaxy Nexus ma „bardzo wysoką” gęstość ekranu (a dokładniej, wartość dpi jest ustawiona na 320). Nexus 7 wykorzystuje „tvdpi” - tj. 213 dpi.

Niezależny od gęstości piksel

Powszechnie nazywane dp. Jest to wirtualna jednostka pikseli używana podczas wyświetlania zawartości. Piksel niezależny od gęstości odpowiada jednemu pikselowi fizycznemu na ekranie o rozdzielczości 160 dpi. Aby obliczyć dp użyj następującej formuły:

px = dp * (dpi / 160)

lub równoważnie:

dp = (px / dpi) * 160

Powodem, dla którego Nexus 7 może wyświetlać więcej treści niż Galaxy Nexus, pomimo podobnych rozdzielczości, jest to, że rozdzielczość Nexusa 7 jest niższa niż w Galaxy Nexus .

Galaxy Nexus (320 dpi, 720 pikseli szerokości)

(720 / 320) * 160 = 360 dp

Nexus 7 (213 dpi, szerokość 800 pikseli)

(800 / 213) * 160 = 600 dp

Oznacza to, że gdy aplikacje wyświetlają się w Galaxy Nexus, szerokość ekranu wynosi w rzeczywistości 360 dp (renderowanych przy użyciu 720 pikseli). Natomiast w Nexusie 7 szerokość ekranu wynosi 600 dp (renderowana przy użyciu 800 pikseli).

Premia

Jeśli Twój Galaxy Nexus jest zrootowany, możesz użyć aplikacji, takiej jak LCD Density Modder, i zmienić DPI urządzenia na 240. Otrzymasz coś znacznie bliższego Nexusowi 7 w mniejszej obudowie. Po lewej stronie znajduje się zrzut ekranu urządzenia w rozdzielczości 240 dpi. Zauważysz, że możemy zobaczyć o wiele więcej treści, gdy DPI jest niższy.

Galaxy Nexus przy 240 dpi Galaxy Nexus przy 320 dpi

Nie ma nic wspólnego z PPI

Inne odpowiedzi wspominają o PPI. Ilość wyświetlanych treści nie ma nic wspólnego z PPI urządzenia. Chociaż często dostawcy wybierają DPI najbliższe PPI urządzenia. (np. Galaxy Nexus ma PPI równy 316, ale DPI 320, przy czym tak jak Nexus 7 ma PPI równy 216, ale używa 213 DPI).

Dalsza lektura

http://developer.android.com/guide/practices/screens_support.html

Derek Kwok
źródło
2
Dzięki za to nikt tak naprawdę nie odpowiedział na pytanie, które zadałem.
zacharyalexstern
2
To ogólnie dobra odpowiedź, ale paragraf „nic wspólnego z PPI” wprowadza fałszywe rozróżnienie między DPI a PPI. Zobacz mój komentarz do odpowiedzi Mohammeda Essama.
Wyzard
Witaj. Po prostu nie rozumiem ani słowa z tego, co mówisz. Zakładasz, że im bardziej dpi jest niska, tym więcej możesz pokazać. Ale kiedy masz 100 kropek na cal, po prostu wyświetlasz mniej informacji na cal niż przy 200 kropkach na cal. Ponadto, jeśli domyślna gęstość jest ustawiona w pobliżu urządzenia ppi, nie można zrobić lepiej, nawet modyfikując wartość, ponieważ o ile wiem, tak, jedna kropka może być wyświetlana na wielu pikselach, ale piksel nie może wyświetlać więcej ta jedna kropka.
Oliver,
Uhhh, czy to dotyczy ekranów na pulpicie?
Oliver,
2
W rzeczywistości Nexus 7 ma 213 DPI i ma wymiary 600x961 dp. Zobacz plus.google.com/105051985738280261832/posts/6eWwQvFGLV8
beetstra
7

Jest tak, ponieważ liczba pikseli na cal (PPI) różni się między nimi. Im wyższy PPI, tym wyższa jakość, ale kosztem (względnego) mniejszego rozmiaru ekranu. Tak więc Nexus 7 ma 216 pikseli na cal, podczas gdy Galaxy Nexus ma 316 pikseli na cal. Rozdzielczość to nie wszystko, musisz także wziąć pod uwagę gęstość pikseli.

Wysokie wartości PPI mają tę zaletę, że HD, ale ma też wadę, jaką jest mniejszy rozmiar ekranu (przy stałej rozdzielczości).

Możesz przeczytać więcej o PPI tutaj .

Mohamed Essam
źródło
Nie rozumiem, co PPI ma wspólnego z nieruchomościami ekranowymi. Zakładając brak skalowania, Galaxy Nexus powinien mieć w przybliżeniu tę samą nieruchomość ekranową co Nexus 7, rzeczy po prostu powinny wyglądać na mniejsze.
zacharyalexstern
3
@zacharyalexstern, PPI jest istotny, ponieważ określa skalowanie czcionek. Tekst 12-punktowy ma mieć wysokość jednej szóstej cala (72pt = 1 cal), co odpowiada 36 pikselom w Nexusie 7 216ppi i około 53 pikselom w Galaxy Nexus 316ppi. Inne elementy interfejsu użytkownika są również skalowane na podstawie PPI.
Wyzard
2
Zasadniczo elementy interfejsu użytkownika są skalowane tak, aby wyświetlały się z jednakowym rozmiarem fizycznym na różnych urządzeniach. Dlatego możesz zmieścić ich więcej na urządzeniu, które jest fizycznie większe.
Wyzard
2
@zacharyalexstern Nie mogę tego lepiej niż Wyzard, więc nie zrobię tego. Po prostu go popieram, bo wydajesz się nieugięty, że PPI nie ma nic wspólnego z nieruchomościami ekranowymi. Obiecuję ci wręcz przeciwnie, ma wszystko wspólnego z nieruchomościami ekranowymi. Masz rację, że dwa ekrany 1280 x 800 mają tę samą liczbę pikseli . Ale wszystkie komponenty Androida są skalowane do gęstości pikseli. Czy zaprogramowałeś dla Androida? Czy termin dp jest znany?
1
@DerekKwok, DPI to termin drukowania, który tak naprawdę nie ma zastosowania do wyświetlaczy komputerowych. Kiedy jest stosowany w odniesieniu do wyświetlaczy komputerowych, jest ogólnie synonimem PPI, ponieważ obraz składa się z pikseli, a nie kropek.
Wyzard
4

Wyświetlanie tej samej ilości treści na ekranie 4,6 "sprawiłoby, że byłaby ona zbyt mała w większości przypadków. Nie byłbyś w stanie jej odczytać, więc umieszczenie takiej ilości treści na ekranie po prostu nie ma sensu. Rozdzielczość określa, ile pikseli możesz wyświetlać, ale jeden piksel nie ma tego samego rozmiaru na każdym ekranie . Aby zawartość była użyteczna i czytelna, musisz zużywać więcej pikseli na mniejszym ekranie, ponieważ są one gęsto upakowane.

Aby uzyskać dobre porównanie, otwórz stronę internetową w Galaxy Nexus i pomniejsz całkowicie. Ta sama strona wyświetlana na monitorze 14 "(lub takim) o podobnej rozdzielczości nie byłaby problemem, ale tekst jest prawie nieczytelny na twoim telefonie.


Z punktu widzenia „w jaki sposób osiąga się to technicznie” - w dużej mierze zależy to od sposobu pisania aplikacji. Domyślnie Android po prostu przeskaluje interfejs na większy ekran, co może powodować, ale nie musi, powodować wyświetlanie większej ilości danych (rozważ przewijaną listę, na przykład: więcej elementów będzie widocznych na większym ekranie). To najbardziej podstawowy scenariusz.

Możliwe jest jednak również, że programista zdefiniuje zupełnie różne układy w zależności od rozmiaru ekranu lub gęstości. Dlatego układy na urządzeniu 7-calowym mogą być całkowicie niezwiązane z układami na urządzeniu 4-calowym lub urządzeniu 10-calowym. Daje to programistom dużą elastyczność w tworzeniu bogatszych interfejsów użytkownika dla tabletów (i innych takich urządzeń) przy zachowaniu interfejsów użytkownika telefonu użyteczne. Jest to omówione szczegółowo na stronie programistów Androida .

eldarerathis
źródło
Chciałem powiedzieć, ironicznie, że Google obsługuje iPada dla Google + ... że demo Glass z Brinem było jednak czymś innym ...: D
t0mm13b
Rozumiem DLACZEGO to się stało, moje pytanie brzmi bardziej jak . Np. Czy to tylko kwestia skalowania?
zacharyalexstern
@zacharyalexstern: To zależy od sposobu pisania aplikacji. Jeśli chcesz, możesz napisać aplikację, która będzie używać zupełnie innych układów na ekranach o różnych rozmiarach, więc niekoniecznie jest to po prostu „skalowanie” w typowym tego słowa znaczeniu. Możesz też pozwolić aplikacji skalować się, jeśli chcesz. Na stronie deweloperów Androida jest dość spory zestaw dokumentacji poświęcony temu zagadnieniu, ale to dość podstawowe podsumowanie.
eldarerathis
1

Przepraszam za głupią odpowiedź, ale: Galaxy Nexus powiększa wszystko.

Na przykład mała litera „a” może mieć szerokość 30 pikseli na Galaxy Nexus, podczas gdy ma tylko 20 pikseli na Nexusie 7. W ten sposób więcej liter może zmieścić się na ekranie. Powodem, dla którego wydają się być tego samego rozmiaru (np. 3 mm, jeśli umieścisz linijkę na ekranie) jest, jak powiedzieli inni, gęstość pikseli. Zasadniczo piksele są większe fizycznie na Nexusie 7.

Powodem, dla którego Galaxy Nexus powiększa wszystko, jest to, że możesz z niego korzystać bez trzymania go o cal od twarzy. Jeśli litera „a” miałaby szerokość 20 pikseli, tak jak w Nexusie 7, byłaby zbyt mała, aby wygodnie ją czytać (ponieważ piksele są znacznie mniejsze).

Felix
źródło
Rozumiem to, to nie jest moja przygoda.
zacharyalexstern