Mam wiele zasobów i wiele układów, ale w niektórych częściach tej aplikacji ustawiam wartości dipów szerokości i wysokości w kodzie java. Jak tutaj rozróżnić rozmiary ekranu?

0
CQM 23 sierpień 2011, 02:59

2 odpowiedzi

Najlepsza odpowiedź

context.getResources().getDisplayMetrics().density * sizeInDips poda rozmiar w pikselach na bieżącym urządzeniu.

Edycja: Jeśli chcesz wartości warunkowe oparte na konfiguracji, możesz zrobić takie rzeczy jak:

Res/values/dimens.xml:

<resources>
    <dimen name="foo">8dip</dimen>
</resources>

Res/values-xlarge/dimens.xml:

<resources>
    <dimen name="foo">16dip</dimen>
</resources>

Te wartości mogą się zmieniać w zależności od dowolnych dostępnych specyfikatorów konfiguracji zasobów.

4
adamp 23 sierpień 2011, 03:20
Ah, więc mogę robić zdania warunkowe w oparciu o to, co się równa, ok
 – 
CQM
23 sierpień 2011, 03:10
Jeśli potrzebujesz wartości warunkowych opartych na konfiguracji, zawsze możesz użyć zasobu dimen. Przykład dodany w odpowiedzi.
 – 
adamp
23 sierpień 2011, 03:18

To pomoże:

  • bardzo duże ekrany mają co najmniej 960dp x 720dp
  • duże ekrany mają co najmniej 640dp x 480dp
  • normalne ekrany mają co najmniej 470 dp x 320 dp
  • małe ekrany mają co najmniej 426dp x 320dp

I

Screen size ranges

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

2
Kurru 23 sierpień 2011, 03:15