Android: AbsoluteLayout?

Я новичок в 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% процентов экрана.

Существуют ли телефоны, на которых Абсолютные макеты не работают? Вызывает ли этот макет какие-либо другие проблемы?

6
задан JBreezy901 15 March 2012 в 08:32
поделиться