Android:使用背景图像缩放按钮

标签 android image text button scale

我可能只是太傻了,但我的 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/

相关文章:

android - 如何在Android中创建可编辑微调器

javascript - 删除循环中的动态图像

CSS <img> 标签不应用父 div 类 css 样式

html - 添加边框半径时边框和图像之间的间隙

R 截断具有特定编码的文本文件

文字 RPG 的 Ruby 角色创建

android - Ksoap2 类转换异常

java - 获取网站的桌面版本

java - Android-如何让 ScrollView 占据屏幕的整个宽度?

text - 代码::阻止查找窗口关闭