gpt4 book ai didi

java - 如何在Android中获取按钮的边框大小

转载 作者:行者123 更新时间:2023-11-29 05:41:34 25 4
gpt4 key购买 nike

如何以编程方式获取标准 Android 按钮的边框宽度?我只需要调整文本大小以适应灰色区域,并需要将其他对象与按钮对齐,但我无法在不知道边框大小的情况下执行此操作。我需要它在所有 API 的 7+ 中工作。下图中的红色箭头显示了我想要获得的内容:

Border Width

这是我用来创建按钮的代码:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com