我可能只是太傻了,但我的 Google 搜索效果不佳。
我在代码中添加了一堆按钮,它们都有动态文本。我为每个按钮设置了背景图片,因为默认的灰色按钮不适用于我的应用程序。
这非常有效,当文本大小(或内容)发生变化时,按钮会自动变大以适应扩展的文本。不起作用的是我希望按钮按比例缩放 - 即,如果背景图像是圆形的,我希望它在按钮变大时保持圆形而不是椭圆形。
对于图像按钮,有一个属性“调整 View 边界”可以做到这一点,但我不能在图像按钮上放置文本。是否有与常规按钮等效的东西?
还是我做错了?
我也试过在代码中设置按钮的宽度,但我似乎无法确定新的高度(button.getHeight() 返回 0)
最佳答案
好的,我找到了一种方法... 我修改了 patch-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 中字体的大小。在这种情况下,因为每个按钮上只有一个字母,所以我不需要担心文本长度,但显然也可以调整它来处理这种情况。
关于Android:使用背景图像缩放按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837071/