我对Android开发很新,请赐教 如何通过拖放操作在图形屏幕中的特定位置移动按钮,文本视图等小部件..
提前致谢
Akshat
答案 0 :(得分:2)
尝试以下代码: -
int x_cord, y_cord;
RelativeLayout.LayoutParams layoutParams1;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (v == mImageViewEye1) {
System.out.println("Eye1 is Clicked...");
layoutParams1 = (RelativeLayout.LayoutParams) mImageViewEye1
.getLayoutParams();
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x_cord = (int) event.getRawX();
y_cord = (int) event.getRawY();
scaleimage(layoutParams1);
layoutParams1.topMargin = y_cord - 75;
mImageViewEye1.setLayoutParams(layoutParams1);
break;
default:
break;
}
}
return true;
}
public void scaleimage(RelativeLayout.LayoutParams layoutParams) {
if (x_cord > windowwidth) {
x_cord = windowwidth;
}
if (y_cord > windowheight) {
y_cord = windowheight;
}
layoutParams.leftMargin = x_cord - 25;
layoutParams.topMargin = y_cord - 75;
}
如果您有任何查询,请告诉我。
答案 1 :(得分:0)
您将在View.onTouchEvent中检测拖动移动。 然后你可以解释移动并将其应用于小部件。
您可以使用View.setAnimation更改绘制窗口小部件的位置。但它可能不会改变它的真实位置,因此在之前的位置上仍会发生触摸。
或者您可以修改窗口小部件的LayoutParams,但应用于View的真实LayoutParams实例取决于添加窗口小部件的父ViewGroup。最简单的方法是将您的小部件存储在AbsoluteLayout中,并在AbsoluteLayout.LayoutParams中更改位置,其中position是x / y。