بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تفاوت متدهای getRawX و getX در کلاس MotionEvent ؟

مدیریت گفتگو
Reza 11 سال پیش
آخرین تغییر: 9 سال پیش

سلام ، تفاوت این دو متد چیه ؟

public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                
                float lastDownX1 = event.getRawX();
                float lastDownX2 = event.getX();
                
        }
        return true;
}

هنگامی که روی صفحه Down یا همون کلیک میشه چه مقادیری در lastDownX1 و lastDownX2 ذخیره میشه ؟

البته یه Log نوشتم که مقادیرش رو نشون بده ، دیدم که هر دو مقدار مساویه !! پس فرقشون چیه ؟!

ممنون .

نظرات

Sajad HP 11 سال پیش
خیلی مطمئن نیستم ولی گمونم مقدار getRawX از مقدار getX دقیق تر باشه و تو ساخت بازی ها که لازمه محل دقیق تاچ شدن روی صفحه معلوم باشه چون اون مقدار رو تو کد نویسی و محاسبات پیچیده مورد استفاده قرار میدن , پس اگه برای برنامه ای ساده کد میزنید لازم نیست از متد getRawX استفاده بشه .....
کاشی زاده 11 سال پیش
متد getX محل تاچ رو نشون میده و getRawX اطلاعات محل تاچ رو بدون دستکاری و تنظیم بر اساس صفحه میده .
SAM 9 سال پیش
متد getX و getRawX وقتی موشن ایونت داون است یک عدد را میده!!! چون متد getX فاصله عرضی را نسبت به نقطه قبلی میده ینی فقط وقتی موشن ایونت MOVE است بکار میاد که ما میخوایم فاصله طی شده عرضی را بگیریم ولی متد getRawX فاصله عرضی از نقطه صفر را میده ینی از سمت چپ چپ تا اونجایی که هستیم.

پاسخ‌ها 1

مشاهده پاسخ صحیح
zavvar 10 سال پیش

 پاسخ صحیح

سلام دوست من

تفاوتی که از نظر فنی میشه بین getX و getRawX داشت اینه که:

getRawX مختصات نسبت به صفحه نمایش دستگاه را ارائه میدهد ولی getX مختصات نسبت به Viewی را که در آن قرار دادیم میدهد.

 

اما تفاوت این دو مورد از نظر کاربردی اینه که:

getRawX برای استفاده در طراحی های لمسی پیچیده مشابه بازی های لمسی و getX برای حرکات ساده بکار می رود.

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .