1

我有一个从 Internet 收集的示例。

public class MprojectActivity extends Activity {
    /** Called when the activity is first created. */
    ImageView itan2;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        itan2=(ImageView)findViewById(R.id.imageView18);

        itan2.setOnTouchListener( new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub


           if(event.getAction()==MotionEvent.ACTION_MOVE){

               RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) itan2.getLayoutParams();

                    int x =(int)  event.getRawX();
                    int y =(int)  event.getRawY();

                    mParams.leftMargin =  x-236;
                    mParams.topMargin =  y-565;
                    itan2.setLayoutParams(mParams);


           }      
                return true;
            }
        });

                  }

} 

在这个例子中,我用 x 和 y 减去 236 和 565。这些值实际上是什么。如何通过动态编码找到它们?

4

2 回答 2

1

它用于创建相对布局,没有什么复杂的,非常简单。

x-236 表示您在远离屏幕左上角的 x 轴 236 单位上设置一个点。y-565 表示您在远离屏幕左上角的 y 轴 565 单位上设置一个点。

通过使用这两个值和左上值 (0,0),您正在创建一个布局来显示您的图像(在本例中为 itan2)

于 2014-05-28T09:07:03.920 回答
0

我不确定我是否理解您的问题,请编辑它。如果您想了解有关 getRawX 和 getRawY 的更多信息,请查看http://developer.android.com/reference/android/view/MotionEvent.html,其中说:

公共最终浮动 getRawX ()

在 API 级别 1 中添加 返回此事件的原始原始 X 坐标。对于屏幕上的触摸事件,这是屏幕上事件的原始位置,在它为包含窗口和视图进行调整之前。

getRawY() 相同

于 2013-06-07T04:13:12.483 回答