- 浏览: 239305 次
- 性别:
- 来自: 湖南
最新评论
-
yuxuejun1123:
为什么没有powerPC,个人觉得这篇文章把mips和powe ...
ARM MIPS PowerPC比较 -
yy232:
我刚学这个,有点疑问,希望你能为我解答 你说 “任何人只 ...
centos的用户、组权限、添加删除用户等操作的详细操作命令 -
wstxdz1023:
就那么几句代码,全是问题
socket 心跳
在学习android时候,看到MotionEvent类里有两个方法,getX getRawX,看解释,很模糊,看不太懂,这到底什么意思?肯定有区别.具体什么区别呢?
一看,两个函数都是返回了整型直,那好办了,把这两个直打印出来,分析下,估计能有收获.好.问题是怎么把这两个直打印出来呢?
哎,这就要求系统不断的丢出MotionEvent,这好办,上篇文章不写了,具体看代码,代码是最好的说明.
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Res extends Activity implements View.OnTouchListener {
Button btn = null;
ImageView control;
int x=0;
int y=0;
int rawx=0;
int rawy=0;
ImageView mouse=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mouse=(ImageView)findViewById(R.id.imageview);
btn=(Button)findViewById(R.id.button);
btn.setOnTouchListener(this);
// mGestureDetector = new GestureDetector(this, new LearnGestureListener());
}
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.qisda changerACTION_MOVE:
x=(int)event.getX();
y=(int)event.getY();
苏州 佳世达 臧春杰
rawx=(int)event.getRawX();
rawy=(int)event.getRawY();
Log.d("DEBUG","getX="+x+"getY="+y+"\n"+"suzhou zangchunjie"+"getRawX="+rawx+"getRawY="+rawy+"\n");
break;
case MotionchangerEvent.ACTION_UP:
break;
}
return false;
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageview"
android:src="@drawable/bitmap"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="press"
android:layout_gravity="right"
/>
</LinearLayout>
这样通过打印直就可以比较结果了.
具体结果如下:
01-06 02:20:35.862: DEBUG/DEBUG(716): getX=22getY=10
01-06 02:20:35.862: DEBUG/DEBUG(716): getRawX=286getRawY=286
01-06 02:20:35.893: DEBUG/DEBUG(716): getX=23getY=10
01-06 02:20:35.893: DEBUG/DEBUG(716): getRawX=287getRawY=286
01-06 02:20:35.991: DEBUG/DEBUG(716): getX=24getY=10
01-06 02:20:35.991: DEBUG/DEBUG(716): getRawX=288getRawY=286
01-06 02:20:36.023: DEBUG/DEBUG(716): getX=25getY=10
01-06 02:20:36.023: DEBUG/DEBUG(716): getRawX=289getRawY=286
01-06 02:20:36.093: DEBUG/DEBUG(716): getX=26getY=10
01-06 02:20:36.093: DEBUG/DEBUG(716): getRawX=290getRawY=286
01-06 02:20:36.121: DEBUG/DEBUG(716): getX=27getY=10
01-06 02:20:36.121: DEBUG/DEBUG(716): getRawX=291getRawY=286
01-06 02:20:36.242: DEBUG/DEBUG(716): getX=28getY=10
01-06 02:20:36.242: DEBUG/DEBUG(716): getRawX=292getRawY=286
这就比较明显了,我画的是直线,getX是获取以widget左上角为坐标原点计算的X轴坐标直.
getRawX 获取的是以屏幕左上角为坐标原点计算的X轴坐标直.
发表评论
-
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-08-19 10:43 1873这两天心血来潮,执行完 repo sync 后,顺手来了一下 ... -
使用Cygwin下载Android代码树
2011-03-16 20:45 1589--官方说明-- To set up y ... -
Cygwin在win下下载android源代码
2011-03-16 20:43 1083首先下载cygwin,cygwin是一个类linux平台。即在 ... -
Android NDK 环境搭建 - 安装配置 Cygwin
2011-03-16 20:40 29671. NDK 下载 最新版 Android NDK 开发工具包 ... -
Android-触感反馈和声音反馈的效果实现
2011-03-15 12:07 29611)只有系统设置中打开触感反馈选项,方法performHa ... -
socket的服务端框架
2011-03-07 14:17 2709最近查了不少java下面nio ... -
android UI 优化系列之 创建RGB565的缓存
2011-03-05 16:42 1924关于如何优化activity的 ... -
SocketChannel 和 DatagramChannel
2011-03-05 16:19 1931SocketChannel 叫套接字通道,面向流,就是通 ... -
Android 调试工具集
2011-03-05 13:25 12841.TraceView1)功能:用于热点分析和性 ... -
Android 中文API (33) —— Checkable
2011-03-03 17:45 1121声明 欢迎转载,但请保留文章原始出处:) ... -
Toast 和 Looper
2011-03-03 09:02 1150Toast 和 Looper,一个属于 android.w ... -
Activity 与 Main Loope
2011-03-03 08:59 1035上文抛出了一个疑问:UI 线程是在哪里绑定 Looper ... -
Class loading in Android : Begin with PathClassLoader
2011-03-03 08:56 1195Google 在 Android 文档里的《What is ... -
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-03-03 08:54 1264这两天心血来潮,执行完 repo sync 后,顺手来了一 ... -
读《Multitasking the Android Way》(一)
2011-03-03 08:50 1180Android Developers Blog 发表了一篇 ... -
从 Remote Service Binding 学习 AIDL 与 IPC
2011-03-03 08:47 1575默认情况下,一个应用不管有多少个 Activity、Ser ... -
Android SDK Add-on Configure, Compile and Release
2011-03-03 08:44 1928SDK Add-on 是一个比较小众的话题,一是通常厂商不 ... -
Activity Task 与 Intent Filter Flag
2011-03-03 08:42 1259接触 Android 以来,一直觉得对 task、affi ... -
android的原理,不需要太多的剩余内存
2011-03-02 16:05 934不用在意剩余内存的大 ... -
Android IPC框架分析 Binder,Service,Service manager
2011-03-02 15:19 1405我首先从宏观的角度 ...
相关推荐
Android MotionEvent 中 getX() 和 getRawX() 的区别实例详解 Android 中的 MotionEvent 是一个重要的事件处理机制,它提供了许多有用的方法来获取触摸事件的信息。其中,getX() 和 getRawX() 是两个常用的方法,...
一个用例MotionEvent.getX()/getRawX/getScrollY()/childView.scrollBy((int) DX, (int) 0),博客地址:https://blog.csdn.net/dreams_deng/article/details/105274141
1.Android移动方式 1. 使用scrollTo/scrollBy 只能影响View的内容移动,并不能改变View本身的位置 2. setX , setY: 设置控件相对于父控件位置 3. 动画 2. Api 综合理解: getRawX: 获取当前控件相对于屏幕原点...
8. **getX getRawX 的区别** - `getX()` 返回View相对于其父视图的左边缘的X坐标,考虑了旋转和变换。 - `getRawX()` 返回View在屏幕上的绝对X坐标,不受父视图影响,适用于需要精确位置信息的情况。 这些属性的...
Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横),但二者又有区别 getX() : 是获取相对当前控件(View)的坐标 getRawX() : 是获取相对显示屏幕左上角的坐标
和getRawX和getX的区分 详细描述:http://blog.csdn.net/u011634756/article/details/10001119 ====================关注小鱼=================== 新浪微博:http://weibo.com/AwareMissing 腾讯微博:...
因此,我们需要将屏幕坐标转换为相对布局的坐标,使用`View.getLocationOnScreen()`和`View.getX()`、`View.getY()`方法获取原始位置,`MotionEvent.getRawX()`和`MotionEvent.getRawY()`获取手指的当前位置。...
本篇文章将深入探讨在Android中如何通过MotionEvent获取屏幕坐标的方法,特别是`getX()`和`getRawX()`的区别。 `getX()`方法用于获取手指触摸点相对于当前处理事件的View的X坐标。这意味着,如果用户在一个按钮...
例如,当用户触摸屏幕时,可以使用`getX()` 和 `getY()` 获取触点相对于当前View的位置,`getRawX()` 和 `getRawY()` 则提供触点相对于屏幕的全局位置。 4. 自定义控件与坐标系 自定义View时,理解坐标系至关重要...
- **相对坐标**:`MotionEvent`对象提供了触摸事件的坐标信息,`getX()`和`getY()`返回的是事件相对于当前View的位置,而`getRawX()`和`getRawY()`则是相对于整个屏幕的坐标。 3. **触摸事件处理** 当用户在屏幕...
因此,我们需要使用`View.getX()`和`View.getY()`获取视图的当前位置,然后使用`MotionEvent.getRawX()`和`MotionEvent.getRawY()`获取手指在屏幕上的位置,再减去视图左上角相对于屏幕的位置,得到相对于视图的坐标...
"Android 坐标系与视图坐标系图解分析" Android 坐标系是指 Android 中的屏幕坐标系,原点位于屏幕的...8. Android 中的坐标系转换:可以通过 getLocationOnScreen() 方法和 getX()、getY() 方法来实现坐标系的转换。
int x = (int) event.getRawX(); int y = (int) event.getRawY(); switch (eventAction) { case MotionEvent.ACTION_DOWN: // 触摸按下时,记录初始位置 temp[0] = (int) event.getX(); temp[1] = y - v....
int newX = (int) (event.getRawX() - downX); int newY = (int) (event.getRawY() - downY); params.x += newX; params.y += newY; windowManager.updateViewLayout(floatView, params); break; } return ...
主要分析更新view的实现过程:实现触摸事件监听,重写onTouch()方法,在ActionDown时,利用getRawX和getRawY得到x1、y1,在ActionMove时,利用getX和getY获取移动过程的x2、y2,两者作差后作为更新的view对应的xy...
可以使用`View.getX()`和`View.getY()`方法获取View的左上角位置,然后用`event.getRawX()`和`event.getRawY()`获取原始触摸坐标,进行相减得到相对坐标。 6. 动画效果: 为了使轨迹曲线更流畅,可以添加平滑动画...
这两种坐标系统之间的区别在于:`getX()`和`getY()`返回的是相对于父视图的位置;而`getRawX()`和`getRawY()`返回的是相对于整个屏幕的位置。 #### 五、获取按钮位置 最后,我们来看看如何获取一个特定视图(如...
1. `getX(int pointerIndex)`和`getY(int pointerIndex)`:返回指定触点在屏幕上的X和Y坐标,坐标系原点位于屏幕左上角。 2. `getRawX()`和`getRawY()`:返回相对于设备屏幕的X和Y坐标,不受父视图的滚动或缩放影响...