如何以编程方式获取支架Android按钮的边框宽度?我只需要调整文本大小以适应灰色,但在不知道边框大小的情况下我不能这样做。谢谢http://s4.postimg.org/9w7idof4d/screenshot_Border_Width.png
答案 0 :(得分:1)
ShapeDrawable bgShape =(ShapeDrawable)btnbck.getBackground();
Rect padding = null;
bgShape.getPadding(padding );
按钮的图像只是一个可绘制的对象。所以你必须得到它的价值。无论如何,它可以用任何你想要的形状。
答案 1 :(得分:1)
我终于找到了解决方案。微调器的默认填充恰好与按钮的边框相同。
int paddingLeft = mySpinner.getPaddingLeft();
希望它在所有设备上都是一样的。
编辑:在所有设备上都不一样。我仍然没有可行的解决方案
答案 2 :(得分:0)
这将获得按钮边框的宽度和高度:
final Button button = new Button(this);
params = new RelativeLayout.LayoutParams(50, 50);
layout.addView(button, params);
button.post(new Runnable()
{
@Override
public void run()
{
button.buildDrawingCache();
Bitmap viewCopy = button.getDrawingCache();
boolean stillBorder = true;
PaddingLeft = 0;
PaddingTop = 0;
while (stillBorder)
{
int color = viewCopy.getPixel(PaddingLeft, button.getHeight() / 2);
if (color != Color.TRANSPARENT)
stillBorder = false;
else
PaddingLeft++;
}
stillBorder = true;
while (stillBorder)
{
int color = viewCopy.getPixel(button.getWidth() / 2, PaddingTop);
if (color != Color.TRANSPARENT)
stillBorder = false;
else
PaddingTop++;
}
}
});