Android 获取线性布局中单击按钮的位置

Android 获取线性布局中单击按钮的位置,android,Android,所以我正在研究一个线性布局,在这里我可以动态地添加和删除Imagebuttons。因此,每次单击imagebutton并执行操作时,imagebutton都会被删除,并使用另一个imagebutton/s进行更改。问题是我想保持点击按钮的位置,这样我就可以在同一位置添加一个新的imagebutton final ViewGroup.LayoutParams lpiv = iv.getLayoutParams(); il.removeView(iv

所以我正在研究一个线性布局,在这里我可以动态地添加和删除Imagebuttons。因此,每次单击imagebutton并执行操作时,imagebutton都会被删除,并使用另一个imagebutton/s进行更改。问题是我想保持点击按钮的位置,这样我就可以在同一位置添加一个新的imagebutton

            final ViewGroup.LayoutParams lpiv =  iv.getLayoutParams();
            il.removeView(iv);

            int ilBtn = R.drawable.ta;

            iv3.setImageResource(ilBtn);
            iv5.setImageResource(ilBtn);

            iv3.setClickable(false);
            iv.setClickable(false);
            il.addView(iv5, lpiv);
            il.addView(iv3, lpiv);
            //iv3.setLayoutParams(lpiv);

粘贴在问题中的代码是您的
OnClickListener
的主体吗?如果是这样,在调用
removeView()
之前,只需修改它以执行以下操作:

其中,
view
是对正在单击的ImageButton的引用,然后在新按钮上调用
setX()
setY()


只是提醒一下,只有当点击的按钮和添加的按钮高度相同且具有相同的尺寸时,这才有效。如果没有,您必须根据原始图像的X/Y与高度/宽度差进行一些计算,以找到相同的X,Y点。

在调用remove之前使用,然后使用该索引进行调用。

请纠正我的问题,但是仅仅更改ImageButton的图像不是更容易吗 添加一个新按钮?要区分状态,只需检查图像或状态变量

customImageButton.setBackgroundResource(R.drawable.imageName);
this.status = this.NEW_STATUS;

映射ID,以便您可以随时访问它们?另外,我不太确定是否有用,因为我不知道更大的上下文-您是否真的需要将
ImageButton
替换为一个新按钮,或者您可以简单地通过更改其可绘制按钮来实现?仅更改图像将大大减少CPU的工作量。我还没有尝试。但它似乎奏效了。但是indexOfChild工作得很好。它更简单,但我需要为每个按钮提供不同的功能。因此,按下按钮后可以更改,并添加两个其他按钮。其中一个可以是按下的按钮。我希望我说得够清楚了。
customImageButton.setBackgroundResource(R.drawable.imageName);
this.status = this.NEW_STATUS;