Все различные разрешения различных продуктов Android приводят меня в бешенство.
Мое первое приложение для Android, которое я написал, было разработано так, что оно поддерживало три широко используемых разрешения: 240x320 (LDPI), 320x480 (MDPI) и 480x800 (HDPI). 480x854 не навредил макету, поскольку он имеет ту же ширину, что и 480x800.
Я также купил следующие устройства для тестирования приложений для Android: Samsung Galaxy Europe (LDPI) HTC Desire Z (HDPI)
К счастью, моя девушка имеет HTC Wildfire S (MDPI), поэтому у меня есть большинство разрешенных резолюций.
Но сегодня мой брат загрузил мое приложение на его новом HTC Sensation, которое имеет еще одно разрешение 540x960 (HDPI?). Который не показывал мое приложение так, как должно, и, вероятно, большинство планшетов также не покажут его правильно.
Что я сделал с моим первым приложением, была зачитана плотность, а затем заданы параметры:
public void set_ui_parameters() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if(metrics.densityDpi == DisplayMetrics.DENSITY_HIGH){
textSize = 35;
timeWidth = 80;
dayWidth = 110;
moneyWidth = 50;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM){
textSize = 35;
timeWidth = 53;
dayWidth = 73;
moneyWidth = 33;
} else if(metrics.densityDpi == DisplayMetrics.DENSITY_LOW){
textSize = 28;
timeWidth = 40;
dayWidth = 55;
moneyWidth = 25;
}
}
Помимо параметров, я также создал чертежи для LDPI, MDPI и HDPI. Это отлично подходит для описанных выше разрешений, но это зависит от разрешения экрана i.c.w. размер экрана и не удается, например, HTC sensatoin с 540x960.
Я знаю, что не все резолюции используются часто, но я хотел бы поддержать как можно больше. Статистика размеров экрана и плотности
Я несколько раз читал Поддержка нескольких экранов, но не нашел четкого ответа на эту "проблему".
Так что я должен прочитать разрешение и установить параметры в соответствии с разрешениями вместо плотности? Это разумная вещь, или как вы справляетесь с этим?
Большое спасибо за вашу информацию!