2015-06-05 3 views
3

Если у меня есть Android-устройство с 5-дюймовым диагональным экраном и шириной экрана 2,3 дюйма, а его экран поддерживает 1080 * 1920 пикселей, что является ближайшим типом его плотности экрана? Как решить этот вопрос?Плотность пикселей в android

ответ

2

Вы должны использовать sp для размеров шрифтов и dp для чего-либо еще. Смотрите этот SO почта относительно плотности экрана, терминологии и надлежащего использования: Difference between px, dp, dip and sp in Android?

Кроме того, здесь ссылку на руководство API андроида разработчика для поддержки нескольких экранов в приложениях: http://developer.android.com/guide/practices/screens_support.html

1

Вы можете узнать дисплей устройства Информация о чтении DisplayMetrics от деятельности

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

int dpi = dm.densityDpi; 

dm.densityDpi даст вам устройство на дюйм ведро, выраженное в точках на дюйм

Вы можете ALS о получить другие показатели дисплея, как:

float density  - The logical density of the display - scaling factor 
float scaledDensity - A scaling factor for fonts displayed on the display. 
int widthPixels  - The absolute width of the display in pixels. 
int heightPixels - The absolute height of the display in pixels. 
float xdpi   - Physical pixels per inch of the screen in the X dimension. 
float ydpi   - Physical pixels per inch of the screen in the Y dimension. 

Однако для некоторых устройств xdpi и ydpi показатели возвращаются неправильные номера, и вы не можете полагаться на них. Начиная с API 17 вы также можете использовать getRealMetrics(). Он должен дать вам точные значения для xdpi и ydpi.

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getRealMetrics(dm); 
Смежные вопросы