如何动态调整所有按钮的相同高度?

时间:2011-12-22 13:00:57

标签: android android-layout

我正在生成我自己的Button个视图(非扩展自android Button类)。

按钮的高度取决于手机屏幕的大小。此应用应显示所有手机屏幕上所有按钮的相同高度,并且所有screen尺寸都可以。

然后,在将按钮添加到layout之前,我应该知道按钮的高度尺寸,但我不知道它的大小,直到它在屏幕上绘制。

如何根据屏幕尺寸在我的所有按钮dynamically上设置相同的高度?

感谢

2 个答案:

答案 0 :(得分:0)

试试这个。 您可以考虑使用尺寸为320 x480的手机,并检查其上的单个按钮的最佳宽度和高度。下面给出的类根据设备的宽度和高度计算宽度和高度。假设您知道按钮需要40作为宽度/高度,然后将40作为参数传递给calculateWidth()/ 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;
    }
}

答案 1 :(得分:0)

最后我用onLayout和我的方法调用布局调用