2012-09-28 4 views
1

Мне не удалось получить значения из «values-sw480dp» или на моем устройстве Sony Xperia, которое 480 x 854 ни на вкладке Samsung galaxy, которое составляет 600 x 1024. Но можно получить Motorola Xoom, который 1280 х 752.Определитель размера ресурса Android

например RES/значения-sw480dp/strings.xml/

<string name="hello_world">hello world</string> 

значения на соответствующих устройствах

Sony Xperia ----> @ 2131034113

Samsung ----> @ 2131034113

на Xoom ---> привет мир

Может ли один объяснить мне это поведение, почему Sony Xperia и Samsung имеет "@ 2131034113" значение.

Спасибо заранее

ответ

3

Согласно http://developer.android.com/guide/topics/resources/providing-resources.html, sw480dp означает «маленькая сторона экрана должна быть не менее 480 дп». Теперь dp является «пикселем на экране с разрешением 160 точек на дюйм», поэтому фактический размер, например. Xperia в dp, я думаю, 320 x 569 (при условии, что это устройство hdpi).

Чтобы получить размер экрана устройства в dp, вам необходимо знать абстрагированный класс плотности (ldpi = 120, mdpi = 160, hdpi = 240, xhdpi = 320). Для приведенного выше экрана Xperia расчет равен: (480*160/240) x (854*160/240), где 160 - базовая плотность (где 1 dp фактически равна одному пикселю), а 240 - плотность абстрагированного устройства.

+0

В соответствии с логикой выше, если я изменю sw480dp на sw320dp, он должен работать на Xperia. Я прав? – vinaykumar

+0

извините, но не работает. – vinaykumar

+1

По логике выше - да; но имейте в виду, что эти «sw» квалификаторы работают только с Android 13 (это 3.2) и выше. – user1410657

Смежные вопросы