Как динамически отрегулировать одинаковую высоту для всех кнопок? - PullRequest
0 голосов
/ 22 декабря 2011

Я создаю свои собственные Button представления (не расширенные от класса Android Button).

Высота кнопки зависит от размера экрана телефона.Это приложение должно показывать одинаковую высоту для всех кнопок экрана на всех телефонах со всеми возможными размерами screen.

Затем я должен знать размер кнопки высоты, прежде чем добавить ее вlayout, но я не знаю, какой у него размер, пока он не будет нарисован на экране.

Как мне установить одинаковую высоту на всех моих кнопках dynamically в зависимости от размера экрана?

спасибо

Ответы [ 2 ]

0 голосов
/ 29 декабря 2011

наконец я сделал это с помощью onLayout и вызова макета с моим методом

0 голосов
/ 23 декабря 2011

Попробуй это.Вы можете взять телефон с размерами, скажем, 320 x 480, и проверить, какая ширина и высота лучше для одной кнопки на нем. Класс, приведенный ниже, рассчитывает ширину и высоту на основе ширины и высоты устройства.Скажем, вы узнали, что вам нужно 40 в качестве ширины / высоты для вашей кнопки, а затем просто передайте 40 в качестве параметра для функции calcWidth () / calculateHeight () для класса, представленного ниже. Во время выполнения ширина и высота будут установлены динамически.

public class DimensionManager {

    private int _screenWidth;
    private int _screenHeight;
    private int _baseScreenWidth = 320;
    private int _baseScreenHeight = 480;

    public DimensionManager(Activity act) {
        WindowManager w = act.getWindowManager();
        Display d = w.getDefaultDisplay();
        _screenWidth = d.getWidth();
        _screenHeight = d.getHeight();
    }
/**
 * 
 * @param baseViewWidth Width considering a base Layout.
 * @return Returns corresponding width for the device and orientation.
 */
    public int calculateWidth(int baseViewWidth) {
        return (baseViewWidth * _screenWidth) / _baseScreenWidth;
    }
    /**
     * 
     * @param baseViewHeight Height considering a base Layout.
     * @return  Returns corresponding height for the device and orientation.
     */
    public int calculateHeight(int baseViewHeight) {
        return (baseViewHeight * _screenHeight) / _baseScreenHeight;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...