Я новичок в Android. Мне нравится иметь свободный набор объектов для рисования, где бы я ни захотел. Поэтому я использую Absolute Layout. Я получаю сообщение о том, что нужно использовать другой макет. И я читал, что это из-за разного разрешения на разных телефонах. Мой вопрос: это единственная причина не использовать Absolute Layout? Я сделал метод, который использует метрики для настройки пикселей.
public int widthRatio(double ratioIn){
DisplayMetrics dm = new DisplayMetrics(); //gets screen properties
getWindowManager().getDefaultDisplay().getMetrics(dm);
double screenWidth = dm.widthPixels; //gets screen height
double ratio = screenWidth/100; //gets the ratio in terms of %
int displayWidth = (int)(ratio*ratioIn); //multiplies ratio desired % of screen
return displayWidth;
}
//method to get height or Ypos that is a one size fits all
public int heightRatio(double ratioIn){
DisplayMetrics dm = new DisplayMetrics(); //gets screen properties
getWindowManager().getDefaultDisplay().getMetrics(dm);
double screenHeight = dm.heightPixels; //gets screen height
double ratio = screenHeight/100; //gets the ratio in terms of %
int newHeight = (int)(ratio*ratioIn); //multiplies ratio by desired % of screen
return newHeight;
}
//sets size of any view (button, text, ...) to a one size fits all screens
public void setSizeByRatio(View object, int width, int height){
LayoutParams params = object.getLayoutParams();
params.width = widthRatio(width);
params.height = heightRatio(height);
}
Итак, если я скажу setSizeByRatio(Button, 10, 25); Он установит ширину кнопок на 10% ширины экрана и высоту на 25% процентов экрана.
Существуют ли телефоны, на которых Абсолютные макеты не работают? Вызывает ли этот макет какие-либо другие проблемы?