我有一个从互联网上收集的例子。
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.这些值实际上是什么?如何用动态编码找到它们?
答案 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()
相同