4

我可能只是愚蠢,但我的谷歌搜索效果不佳。

我在代码中添加了一堆按钮,它们都具有动态文本。我为这些按钮中的每一个设置了背景图像,因为默认的灰色按钮不适用于我的应用程序。

这非常有效,当文本大小(或内容)发生变化时,按钮会自动增长以适应扩展的文本。不起作用的是我希望按钮按比例缩放 - 即如果背景图像是圆形的,我希望它保持圆形而不是椭圆形,因为按钮变大了。

使用图像按钮,有一个属性“调整视图边界”可以做到这一点,但我不能在图像按钮上放置文本。普通按钮有什么等价物吗?

还是我要解决这个问题?

我也尝试在代码中设置按钮的宽度,但我似乎无法确定新的高度(button.getHeight() 返回 0)

4

1 回答 1

4

好的,我找到了一种方法...我修改了补丁 9,使其可扩展区域在两个轴上都是最大的。

然后像这样使用 DisplayMetrics:

        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        buttonView.setGravity(Gravity.CENTER);

        int buttonSize=(int) Math.floor(metrics.density*1.6*fontSize);
        buttonView.setWidth(buttonSize);
        buttonView.setHeight(buttonSize);

其中 fontSize 是我放置在每个按钮上的 DIP 中字体的大小。在这种情况下,由于每个按钮上只有一个字母,我不需要担心文本长度,但显然也可以调整它来处理这种情况。

于 2010-05-15T01:06:07.717 回答