ورود

View Full Version : بدست آوردن مختصات نقاط صفحه نمایش



majid.ostadi
سه شنبه 29 مهر 1393, 16:03 عصر
سلام به همگی
من داخل پروژه ام، بک گراند لایوتم یه تصویر هست که میخوام این تصویر رو به عنوان باتن استفاده کنم.
چطوری میتونم مختصات قسمت عکس رو به دست بیارم.
تو نمونه برنامه های اندروید، یه پروژه هست که نمیخوام از اون استفاده کنم و میخوام مختصات عکس رو قابل کلیک کنم.
ممنون


پایا و مانا باشید

esideli
سه شنبه 29 مهر 1393, 23:05 عصر
سلام.
خیلی ساده هست. اول عکست رو با برنامه paint ویندوز باز کن. بعد با موس روی عکس برو، هر جا که موس باشه مختصات اون نقطه رو اون پایین می تونی ببینی که مختصات هر نقطه دو عدد هست که همون x و y می شه. حالا برای این که مختصات یه قسمت از عکس رو بدست بیاری باید موست رو روی نقاط مختلف عکس با فاصله ببری و مختصات نقطه هارو یادداشت کنی. وقتی داری نقاط رو انتخاب می کنی توجه کن که وقتی این مختصات رو به برنامه (مثلا اندروید ) می دی این نقاط بصورت فرضی با یه خط مستقیم به هم وصل می شن و یه محیط بسته درست می کنن.

124798

majid.ostadi
چهارشنبه 30 مهر 1393, 10:32 صبح
ممنون دوست عزیز.
حالا اگه بخوام از این پیکسل ها استفاده کنم چیکار میتونم بکنم.
مثلا میخوام اون x و y رو بدم و اون نقطه رو قابل لمس کنم و یه رویدادی رو براش اعمال کنم

esideli
چهارشنبه 30 مهر 1393, 12:14 عصر
شما باید روی عکس حداقل سه نقطه رو مشخص کنی که اگه بصورت فرضی به هم وصلشون کنی یه چند ضلعی بدست بیاد. حالا می تونی تو برنامه این نقاط رو تعریف کنی و به عکست نسبت بدی و اگه قسمتی از عکس رو لمس کنی که جزء این چند ضلعی باشه، کاری که می خوای انجام بشه.

من نحوه بدست آوردن مختصات رو بهت گفتم. نمونه برنامش هم توی برنامه های کوچک و مفید آندروید هست به نام imagemap (شناسایی مکان کلیک شده روی عکس).

http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/page2&highlight=%D9%85%DA%A9%D8%A7%D9%86+%DA%A9%D9%84%DB %8C%DA%A9+%D8%B4%D8%AF%D9%87+%D8%B1%D9%88%DB%8C+%D 8%B9%DA%A9%D8%B3

برنامه رو ایمپورت کن و یه بار تست کن. مختصات و اسامی ایالت ها هم می تونی از مسیر res -> xml -> maps.xml ببینی. پیشنهاد می کنم عکس نقشه رو با paint باز کن و مختصات وارد شده برای هر ایالت رو paint چک کن.



حالا می تونی جای عکس نقشه آمریکا، عکس خودت و با مختصات و نام دلخواه وارد کنی.

majid.ostadi
چهارشنبه 30 مهر 1393, 16:28 عصر
شما باید روی عکس حداقل سه نقطه رو مشخص کنی که اگه بصورت فرضی به هم وصلشون کنی یه چند ضلعی بدست بیاد. حالا می تونی تو برنامه این نقاط رو تعریف کنی و به عکست نسبت بدی و اگه قسمتی از عکس رو لمس کنی که جزء این چند ضلعی باشه، کاری که می خوای انجام بشه.

من نحوه بدست آوردن مختصات رو بهت گفتم. نمونه برنامش هم توی برنامه های کوچک و مفید آندروید هست به نام imagemap (شناسایی مکان کلیک شده روی عکس).

http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/page2&highlight=%D9%85%DA%A9%D8%A7%D9%86+%DA%A9%D9%84%DB %8C%DA%A9+%D8%B4%D8%AF%D9%87+%D8%B1%D9%88%DB%8C+%D 8%B9%DA%A9%D8%B3

برنامه رو ایمپورت کن و یه بار تست کن. مختصات و اسامی ایالت ها هم می تونی از مسیر res -> xml -> maps.xml ببینی. پیشنهاد می کنم عکس نقشه رو با paint باز کن و مختصات وارد شده برای هر ایالت رو paint چک کن.



حالا می تونی جای عکس نقشه آمریکا، عکس خودت و با مختصات و نام دلخواه وارد کنی.

دوست من ممنون
این رو دیده بودم. راه ساده تر نیست که نخوان اینو استفاده کنم.
من لایوت اصلی برنامه ام، تو بکگراندش یه عکس دارم که میخوام با کلیک روی قسمت های مختلف عکس، لایوت های مورد نظرم رو اجرا کنه.
راه حل ساده تر، این برنامه رو که گفتی یکم سنگین میشه و راه آخرم هست

harani
چهارشنبه 30 مهر 1393, 18:27 عصر
شما دو تا راه دارین :

1- محلی که عکس مورد نظر است را یک دکمه transparent قرار بدید روی اون کلیک میکنه ولی انگار داره روی عکس کلیک میکنه :
2- یه راه دیگش اینکه x,y رو توسط دیوایس تون در بیارید :
برای این کار به قسمت setting دستگاه و سپس به قسمت developer بروید . گزینه ی Pointer Location رو فعال کنید حال با کشیدن انگشت به ه طرف در قسمت بالای دستگاه میتوانید محل x,y نقطه ی لمس شده را مشاهده کنید .

majid.ostadi
چهارشنبه 30 مهر 1393, 20:00 عصر
شما دو تا راه دارین :

1- محلی که عکس مورد نظر است را یک دکمه transparent قرار بدید روی اون کلیک میکنه ولی انگار داره روی عکس کلیک میکنه :
2- یه راه دیگش اینکه x,y رو توسط دیوایس تون در بیارید :
برای این کار به قسمت setting دستگاه و سپس به قسمت developer بروید . گزینه ی Pointer Location رو فعال کنید حال با کشیدن انگشت به ه طرف در قسمت بالای دستگاه میتوانید محل x,y نقطه ی لمس شده را مشاهده کنید .

ممنون دوست خوبم
x و y دارم. چطوری میتونم ازش استفاده کنم:اشتباه::اشتباه: راه حل دوم رو میشه توضیحی بدین:قلب::قلب:

esideli
پنج شنبه 01 آبان 1393, 04:00 صبح
یه راه ساده تر به ذهنم رسید. نیازی به x و y هم نیست. بستگی داره که قسمت هایی که توی بک گراندت می خوای قابل لمس باشه چه طوری باشه. اگه شکل چهار گوش مثل مربع یا مستطیل باشه میشه ولی اگه شکل دیگه باشه باید از فکر خودت استفاده کنی و تغیرش بدی.

مراحل کار به این صورته که اول یه کپی از بکگراندت می گیری و با فوتوشاپ باز می کنی و اون رو برش میدی (خطوط سیاه)،چطوری؟:متفکر:

124856

جوری که اون قسمت هایی که می خوای قابل لمس باشه توی یه مربع، مستطیل قرار بگیره (باید از برش با خط صاف استفاده کنی و هیچ قسمتی حذف نشه). حال قسمت هایی که برش دادی رو تک تک ذخیره کن.

می ری توی لایوت برنامه و اون قسمت هایی که برش دادی رو می چینی روی بک گراندت و از دید کاربر یه عکس واحد دیده می شه در صورتی که تعدادی ایمیج ویو هست که به هم چسبیدن. حالا اون قسمت هایی که می خوای قابل لمس باشن رو براش رویداد onClick تعریف کن.:چشمک:

حالا حتما می گی اون خطوط آبی چیه؟:متفکر:

می تونی بعد از جدا کردن تمام قسمت های مشخص شده با خطوط سیاه علاوه بر برش دادن خطوط مشکی، اون خطو آبی رو تک تک برش بدی( بقیه قسمت ها رو حذف کن). بعد از اینکه تیکه های جدا شده ی خطوط سیاه رو توی لایوتت چیدی، اون قسمت های آبی رو وارد لایوت کن و جاش رو تعین کن. چطوری؟:متفکر:
بگو مثله بالا و چپ ایمیج ویو 2 باشه یا پایین و چپ یا هر سلیقه ای داری. بعد هم براش رویداد onClick تعریف کن.:چشمک:

خب این 2تا روش مختلف با روش قبلی.

هر کاری کردی بیا انجا بگو تا نتیجه گیری داشته باشیم

majid.ostadi
پنج شنبه 01 آبان 1393, 09:20 صبح
یه راه ساده تر به ذهنم رسید. نیازی به x و y هم نیست. بستگی داره که قسمت هایی که توی بک گراندت می خوای قابل لمس باشه چه طوری باشه. اگه شکل چهار گوش مثل مربع یا مستطیل باشه میشه ولی اگه شکل دیگه باشه باید از فکر خودت استفاده کنی و تغیرش بدی.

مراحل کار به این صورته که اول یه کپی از بکگراندت می گیری و با فوتوشاپ باز می کنی و اون رو برش میدی (خطوط سیاه)،چطوری؟:متفکر:

124856

جوری که اون قسمت هایی که می خوای قابل لمس باشه توی یه مربع، مستطیل قرار بگیره (باید از برش با خط صاف استفاده کنی و هیچ قسمتی حذف نشه). حال قسمت هایی که برش دادی رو تک تک ذخیره کن.

می ری توی لایوت برنامه و اون قسمت هایی که برش دادی رو می چینی روی بک گراندت و از دید کاربر یه عکس واحد دیده می شه در صورتی که تعدادی ایمیج ویو هست که به هم چسبیدن. حالا اون قسمت هایی که می خوای قابل لمس باشن رو براش رویداد onClick تعریف کن.:چشمک:

حالا حتما می گی اون خطوط آبی چیه؟:متفکر:

می تونی بعد از جدا کردن تمام قسمت های مشخص شده با خطوط سیاه علاوه بر برش دادن خطوط مشکی، اون خطو آبی رو تک تک برش بدی( بقیه قسمت ها رو حذف کن). بعد از اینکه تیکه های جدا شده ی خطوط سیاه رو توی لایوتت چیدی، اون قسمت های آبی رو وارد لایوت کن و جاش رو تعین کن. چطوری؟:متفکر:
بگو مثله بالا و چپ ایمیج ویو 2 باشه یا پایین و چپ یا هر سلیقه ای داری. بعد هم براش رویداد onClick تعریف کن.:چشمک:

خب این 2تا روش مختلف با روش قبلی.

هر کاری کردی بیا انجا بگو تا نتیجه گیری داشته باشیم

ایول داری دوست عزیز

harani
جمعه 02 آبان 1393, 10:17 صبح
امیدوارم که مشکل حل بشه توسط راهنمایی دوستمان ولی ممکنه این موضوع در سایزهای مختلف ساپورت نشه و چیدمان ایجاد شده از دست بره .