首先取触摸点坐标要在onTouchEvent这个方法中取,取坐标的方法如下event.getX()//取相对于你触摸的view的左边的偏移(X坐标)
event.getY()//取相对于你触摸的view的顶边的偏移(Y坐标)
event.getRawX()//取你触摸点相对于屏幕左边的偏移
event.getRawY()//取你触摸点相对于屏幕顶边的偏移
view.getHeight();//取到的是控件在屏幕中你能看到的高度(可能上面或下面有隐藏的部分)
view.getMeasuredHeight()//取到的是控件真实的高度包括上面或下面隐藏的部分
view.getWidth();//同上
view.getMeasuredWidth()//同上
//取控件宽高在oncreate中直接取的话都是0,所以要用下面方法取,
//方法三的效率最快具体使用哪个要看你的需求
//方法一
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
imageView.measure(w, h);
int height =imageView.getMeasuredHeight();
int width =imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
//方法二
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int height = imageView.getMeasuredHeight();
int width = imageView.getMeasuredWidth();
textView.append("\n"+height+","+width);
return true;
}
});
//方法三
ViewTreeObserver vto2 = imageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());
}
});
//取手机屏幕的宽高
//第一种方法
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;// 屏幕的宽度
int screenHeight = dm.heightPixels; //屏幕的高度
//第二种方法
WindowManager manager = getWindowManager();
Display display = manager.getDefaultDisplay();
int screenWidth = display.getWidth();// 屏幕的宽度
int screenHeight = display.getHeight();//屏幕的高度