动态获取和设置位置

时间:2012-03-26 08:34:27

标签: android button position dynamically-generated

我在 for 循环中创建N个按钮,每个按钮OnClickListener。用户可以单击每个按钮并设置一个数字。在那之后,我想要TextView在按钮上方和中间显示数字。

Example of what I want

这正是我想要的。灰色背景是按钮,数字是TextView

我现在的代码:

        for (int toShow = 0; toShow < nShips; toShow++)
            {
                btn = new Button(this);
                btn.setBackgroundResource(shipDrawable.get(ima));
                btn.setLayoutParams(params);
                row[pos].addView(btn);
                btn.setId(shipId.get(ima));
                btn.setOnClickListener(listeners);
                if (row[pos].getChildCount() == 3) pos++;
                ima++;
            }

我尝试在for循环中使用它:

float x = btn.getX(), y = btn.getY();
                TextView level = new TextView(this);
                level.setText("5");
                level.setX(x); level.setY(y);

但没有奏效。我可以用什么来得到我想要的东西?

2 个答案:

答案 0 :(得分:2)

如果要在b按钮上显示图像,则应使用ImageButton。按钮和图像按钮之间的区别是在按钮中,您可以在按钮上显示文本,在ImageButton上,您可以在按钮上显示图像以及按钮的所有功能

答案 1 :(得分:2)

KrLx_roller我得到的是你想要在按钮上放置文字,你不需要采取隔膜文本视图就可以添加像这样的文本

    Button textOne = new Button(this);

    textOne.setText("5");
    textOne.setBackgroundResource(R.drawable.img);
    textOne.setGravity(Gravity.CENTER);
    textOne.setTextColor(Color.RED);