2017-02-03 7 views
0

Я перехожу от Eclipse к Android Studio. У меня проблема с плотностью Эмуляторов. Например, в Eclipse Samsung S4 имеет плотность xxhdpi, но в Android Studio - xhdpi. Samsung S4: 4,99' - 1080 х 1920.Android Studio Density

Это мой код:

Float density = getResources().getDisplayMetrics().density; 

if(density >= 1.0 && density < 1.5){ //mdpi 
... 
} else if(density >= 1.5 && density < 2.0){ //hdpi 
... 
} else if(density >= 2.0 && density < 3.0){ //xhdpi 
... 
} else if(density >= 3.0 && density < 4.0){ //xxhdpi 
... 
} else if(density >= 4.0){ //xxxhdpi 
... 
} 

Значение плотности 2,625. Так входит в случай xhdpi, но мне нужно ввести xxhdpi! В чем проблема? Есть лучший способ сделать это?.

Благодаря

+0

У вас действительно есть эта цепочка 'if's где-то в вашем коде? Если это так, вы, скорее всего, делаете что-то неправильное или неоптимальное. – Henry

+0

Да, у меня есть. Зачем? Например, я использую dp, wrap_content и т. Д., Чтобы попытаться работать на каждом экране, но иногда мне нужно вручную отрегулировать некоторые размеры или позиции. – user3240604

+0

Обычно это делается путем помещения значений в файл ресурсов. У вас могут быть разные версии для разных размеров экрана или плотности. Сам код чист, просто получите значение ресурса. – Henry

ответ

0

Поместите этот код в Manifest.xml

<supports-screens android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true"/> 

Надеется, что это поможет.