glo*_*dos 17 android coordinates motion
我有以下情况:
我有一个自定义ListView与ImageView和TextView连续.ImageView有一个onTouchListener,wchich调用我的onTouch方法.以下是它的一些内容:
if (event.getAction()==MotionEvent.ACTION_MOVE) {
layout.leftMargin = (int) event.getX() - dragIcon.getWidth()/2;
layout.topMargin = (int) event.getY() - dragIcon.getHeight()/2;
//Log.d("Tag", "Pozycja: " + event.getX() +", "+ event.getY());
}
dragIcon.setLayoutParams(layout);
Run Code Online (Sandbox Code Playgroud)
当检测到移动时,我正在显示新图像(在ListView中不是这个),我开始根据x和y坐标移动它.
问题是,getX和getY返回相对于列表中ImageView的位置,而不是整个ListView(我想是这样).因此,当我触摸中间的项目并向上滑动手指时,getY返回负值(在ImageView边界上方).
希望,我解释清楚..
任何想法如何获得相对于屏幕尺寸的坐标?谢谢.
getX()和getY()返回与调用它的视图相对应的值。因此,假设
ImageView imV = (ImageView)findViewById(R.id.image_view);
Run Code Online (Sandbox Code Playgroud)
然后您可以使用
x = imV.getX() + event.getX();
y = imV.getY() + event.getY();
Run Code Online (Sandbox Code Playgroud)
在这里,我假设您已在imV上设置了onTouchListener。
| 归档时间: |
|
| 查看次数: |
19507 次 |
| 最近记录: |