Android:用背景图像缩放按钮

Android:用背景图像缩放按钮,android,image,text,button,scale,Android,Image,Text,Button,Scale,我可能只是有点傻,但我的谷歌搜索结果并不好 我在代码中添加了一些按钮,它们都有动态文本。我已经为每个按钮设置了一个背景图像,因为默认的灰色按钮不适合我的应用程序 这非常有效,当文本大小(或内容)发生变化时,按钮会自动增长以适应展开的文本。不起作用的是,我希望按钮按比例缩放-也就是说,如果背景图像是圆形的,我希望它在按钮变大时保持圆形而不是椭圆形 对于imagebutton,有一个属性“Adjust view bounds”正是这样做的,但我不能将文本放在imagebutton上。普通按钮是否有等

我可能只是有点傻,但我的谷歌搜索结果并不好

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

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

对于imagebutton,有一个属性“Adjust view bounds”正是这样做的,但我不能将文本放在imagebutton上。普通按钮是否有等效物

还是我做错了


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

好的,我找到了一种方法。。。 我修改了patch-9,使其在两个轴上的可扩展面积最大

然后使用如下显示度量:

        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字体的大小。在这种情况下,因为每个按钮上只有一个字母,所以我不需要担心文本长度,但显然可以调整它来处理这种情况