2013-09-06 8 views
71

согласно http://developer.android.com/training/multiscreen/screendensities.htmlМасштабный коэффициент для xxhdpi android?

Следующие масштабные коэффициенты упоминаются

xhdpi: 2.0 ИПЧР: 1.5 MDPI: 1,0 (базовый уровень) ldpi: 0,75

мне было интересно, что масштабный коэффициент будет для xxhdpi?

+0

Поддерживает ли она даже xxhdpi? Не похоже, что Google пропустил что-то из документов – musefan

+0

@musefan, android sdk создает папку автоматически с начала этого года по крайней мере, называется drawable-xxhdpi. Также S4, HTC ONE и Xperia Z являются xxhdpi. Я видел, как они берут ресурсы из ведра xxhdpi. они намного выше уровня xhdpi (240) –

+0

Достаточно честно, тогда – musefan

ответ

256

В android.util.DisplayMetrics, вы можете увидеть, что коэффициент масштабирования 0,00625:

/** 
* Scaling factor to convert a density in DPI units to the density scale. 
* @hide 
*/ 
public static final float DENSITY_DEFAULT_SCALE = 1.0f/DENSITY_DEFAULT; 

Где, как DENSITY_DEFAULT 160 -> Коэффициент масштабирования = 1.0f/160 = 0,00625.

sizeScale = DENSITY_DEFAULT_SCALE * DENSITY_DPI 

Отсюда:

  • ldpi = 0,00625 * 120 ->0,75
  • MDPI = 0,00625 * 160 ->1,0
  • ИПЧР = 0,00625 * 240 ->1,5
  • xhdpi = 0,00625 * 320 ->2,0
  • xxhdpi = 0,00625 * 480 ->3,0
  • xxxhdpi = 0,00625 * 640 ->4.0

Не совсем наука о ракете, но надеюсь, что это будет полезно для кого-то :)

+3

и tvdpi -> 1.3312501 (например: https://plus.google.com/105051985738280261832/posts/6eWwQvFGLV8) –

+2

Интересно, правда ли это, на сайте Google Device Metrics перечислены масштабирование 3.5 и 4.0 для xxxhdpi: https://design.google.com/devices/. Я не уверен, как решить эту несогласованность ... – lilbyrdie

+3

@lilbyrdie: он все еще сохраняется. См. Комментарий для 'DENSITY_560' в' android.util.DisplayMetrics' – ozbek

6

Если вы посмотрите на Metrics and Grids, вы увидите, что xxhdpi - 480 dpi, что в 3 раза больше, чем у базовой линии (mdpi @ 1.0). Другими словами, масштабный коэффициент для xxhdpi составляет 3,0