Android ontouch示例

时间:2013-06-07 04:07:17

标签: android

我有一个从互联网上收集的例子。

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.这些值实际上是什么?如何用动态编码找到它们?

2 个答案:

答案 0 :(得分:1)

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

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

通过使用这两个值并保留顶部值(0,0),您将创建一个布局来显示您的图像(在此示例中为itan2)

答案 1 :(得分:0)

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

  

public final float getRawX()

     

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

getRawY()

相同