1

我使用表格布局来使用权重来布局按钮,按钮的大小为 0dip 或 wrap_content,因此它们按权重扩展。

我正在尝试将按钮转换为 ImageButton 并将图像设置为按钮大小而不是展开它。

我让按钮被创建并获得它的大小,然后我分配图像并使用 ImageButton.setMaxHeight(); 限制它的高度;

final ImageButton ib = (ImageButton) findViewById(R.id.buttonOptions);
    ib.post(new Runnable() {
        public void run() {
            final int height = ib.getHeight();
            ib.setScaleType(ScaleType.FIT_CENTER);
            ib.setMaxHeight(5); // or height    
            ib.setImageResource(R.drawable.options);

        }});

图像以其原始大小绘制,因此扩展按钮... setMaxHeight() 不限制图像高度/宽度。知道为什么吗?

4

3 回答 3

3

解决了它

ib.setAdjustViewBounds(true);
于 2013-01-02T10:43:47.700 回答
0
ViewTreeObserver observer = ib.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
//here you can get height and set height
}

不确定,但试试吧。它可能会帮助你。

于 2013-01-02T06:24:45.483 回答
0

setMaxHeight() 用于图像按钮而不是其中的图像。

尝试,

ib.setScaleType(ScaleType.CENTER_CROP);
于 2013-01-02T06:29:54.183 回答