是否可以找到我点击布局的位置?我有一个大的ScrollView,我想知道我点击的位置。我的屏幕尺寸是854x480,但ScrollView有2000x480。我如何找到我点击的坐标位置?查找在ScrollView中单击的坐标
2
A
回答
1
在Activity类中。
import android.view.MotionEvent;
...
@Override
public boolean onTouchEvent(MotionEvent e)
{
switch (e.getAction())
{
case MotionEvent.ACTION_DOWN:
float cordinate_X = e.getRawX();
float cordinate_Y = e.getRawY();
break;
}
return true;
}
+0
不会告发”吨只是给屏幕上的坐标,而不是在ScrollView上的位置? – SpeedBirdNine
+0
然后只需添加滚动视图的scrollY,是吗? – Phix
0
你为什么不创建自定义监听我的下面鳕鱼可以帮助你
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView {
private ScrollViewListener scrollViewListener = null;
public ObservableScrollView(Context context) {
super(context);
}
public ObservableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScrollViewListener(ScrollViewListener scrollViewListener) {
this.scrollViewListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
// if (scrollViewListener != null) {
// scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
// }
}
private boolean mScrollable = true;
public void setScrollingEnabled(boolean enabled) {
mScrollable = enabled;
}
public boolean isScrollable() {
return mScrollable;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:
// if we can scroll pass the event to the superclass
if (mScrollable)
return super.onTouchEvent(ev);
// only continue to handle the touch event if scrolling enabled
return mScrollable; // mScrollable is always false at this point
default:
return super.onTouchEvent(ev);
}
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// Don't do anything with intercepted touch events if
// we are not scrollable
if (!mScrollable)
return false;
else
return super.onInterceptTouchEvent(ev);
}
}
0
我建立了被点击使用下面的方法拉长滚动视图的坐标。
float yScrollPosition = event.getY();
DisplayMetrics metrics = new DisplayMetrics();
float logicalDensity = metrics.density;
float yPosition = yScrollPosition/logicalDensity;
相关问题
- 1. 找出点击单元格的坐标
- 2. 在UILabel中查找子串的坐标
- 3. 在OpenLayers中查找点的坐标
- 4. 查找ID坐标
- 5. 查找点击是否存在于一组坐标中
- 6. 查找Koch Curve的坐标
- 7. 查找角色的坐标?
- 8. 查找几个坐标中最接近的坐标
- 9. 在CSS3D元素上查找屏幕坐标的局部坐标
- 10. 查找InkCanvas中每个点的坐标
- 11. 查找球形ThreeJS Pano中的坐标
- 12. 查找图中点的坐标
- 13. 在RichTextBox中查找鼠标光标位置的坐标
- 14. 沿路径查找坐标
- 15. 在C#中单击鼠标获取鼠标坐标
- 16. 查找具有边框的HTML5 Canvas(点击)事件的坐标
- 17. 从python坐标元组中查找平均坐标
- 18. AS3 - 在BitmapData中查找给定x坐标的最高y坐标?
- 19. 使用Java查找坐标集中心
- 20. 在画布上查找坐标Gnuplot
- 21. 查找坐标是否在区域
- 22. 在缓冲图像上查找坐标
- 23. 查找“视图”坐标在vis.js
- 24. 单击WebView上的事件坐标
- 25. 如何在Babylon.js场景中找到点击的坐标?
- 26. 从坐标列表的最小距离查找坐标
- 27. 全球坐标值在鼠标单击Flex中
- 28. 查找单个手指点击目标
- 29. 确定scrollView中单击的对象?
- 30. 在MongoDB中找到最接近的坐标,以便坐标
尝试此[样品](http://xjaphx.wordpress.com/2011/06/13/detect-xy-coordinates-when-clicking-or-touching-on-screen/) –