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

时间:2013-08-12 14:30:27

标签: android

所以我正在进行线性布局,我在其中动态添加和删除Imagebuttons。因此,每次单击图像按钮并执行操作时,图像按钮将被删除并使用另一个图像按钮进行更改。事情是我想保持点击按钮的位置,以便我可以在同一位置添加一个新的图像按钮。

            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);

3 个答案:

答案 0 :(得分:1)

纠正我,但改变ImageButton的图像并不容易 添加新按钮?要区分状态,只需检查图像或状态变量。

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

答案 1 :(得分:0)

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

float originalX = view.getX();
float originalY = view.getY();

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

只是单挑,这只有在点击按钮并且添加的按钮高度相同时才有效。如果它们不是,你将不得不根据原始的X / Y与高度/宽度差进行一些计算,以找到相同的x,y点。

答案 2 :(得分:0)

在调用remove之前使用LinearLayout.indexOfChild(View child),然后使用该索引调用addView(View child, int index)