我可能只是愚蠢但我的谷歌搜索效果不佳。
我在代码中添加了一堆按钮,这些按钮都有动态文本。我为每个按钮设置了一个背景图像,因为默认的灰色按钮对我的应用程序不起作用。
这非常有效,当文本大小(或内容)发生变化时,按钮会自动增长以适应扩展文本。不起作用的是我希望按钮按比例缩放 - 即如果背景图像是圆形的,我希望它保持圆形而不是椭圆形随着按钮变大。
使用图像按钮,有一个属性“调整视图边界”就可以完成这个但我不能将文本放在图像按钮上。是否有类似常规按钮的东西?
还是我错了?
我也尝试在代码中设置按钮的宽度,但我似乎无法确定新的高度(button.getHeight()返回0)
答案 0 :(得分: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中我放在每个按钮上的字体大小。在这种情况下,因为我在每个按钮上只有一个字母,所以我不需要担心文本长度,但是显然可以调整它来处理这种情况。