作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何以编程方式获取标准 Android 按钮的边框宽度?我只需要调整文本大小以适应灰色区域,并需要将其他对象与按钮对齐,但我无法在不知道边框大小的情况下执行此操作。我需要它在所有 API 的 7+ 中工作。下图中的红色箭头显示了我想要获得的内容:
这是我用来创建按钮的代码:
cmdView = new Button(this);
params = new RelativeLayout.LayoutParams(widthLblViewVerbs , (int) fieldHeight);
params.leftMargin = (int) (screenWidth - params.width);
params.topMargin = (int) yPos;
cmdView.setSingleLine();
cmdView.setText("View");
cmdView.setPadding(0, 0, 0, 0);
cmdView.setTextSize(TypedValue.COMPLEX_UNIT_PX, SetTextSize(cmdView.getText().toString(), params.width, params.height));
layout.addView(cmdView, params);
注意。我不得不再次问这个问题,因为上次有人否决了我的问题,我迫切需要一个解决方案。几个星期以来,我的程序完全没有取得任何进展,因为我一直被这个问题和另一个问题所困扰。如果我的问题有什么不清楚的地方,请告诉我,我会进行编辑。谢谢
最佳答案
我从评论中推荐的初始代码可以找到here . Dan Bray 完成的实现是:
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++;
}
}
});
关于java - 如何在Android中获取按钮的边框大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17374977/
我是一名优秀的程序员,十分优秀!