fun_code 216 ارسال شده در 13 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 13 آبان، ۱۳۹۴ سلام دوستان شاید با این مشکل روبرو شده باشید و از خیرش گذشته باشید. اما اگر حل بشه خیلی کاربردیه. حتما تا الان یک عکس رو با دستورات زیر و با استفاده از کتابخانه انیمیشن پلاس Rotate کردین ... Private img As ImageView img.Initialize("img") img.Bitmap=LoadBitmap(File.DirAssets,"1.png") Activity.AddView(img,300,350,200,200) anim.InitializeRotate("anim",0,180) anim.Duration=1 anim.PersistAfter=True anim.Start(img) با این کار عکس 180 درجه میچرخه یعنی طبق شکل زیر از مکان شماره 1 به مکان شماره 2 تغییر مکان میده و به همون شکل باقی میمونه... اما مشکل اینجاست که در ظاهر مکانش جابجا شده اما در حقیقت مکان عکس هیچ تغییری نکرده ! یعنی اگر جایی که عکس اونجا بوده (مکان شماره 1)رو کلیک کنید ، میبینید رویداد کلیک رخ میده ! و همچنین اگر روی مکانی از عکس که با چرخش به اونجا رفته (مکان شماره 2) کلیک کنید میبینید رویداد کلیک رخ نمیده ! (یعنی روی عکس کلیک میکنیا ، انگار کلیک نکردی... چه نقص بزرگی در این کتابخانه وجود داره !) از دوستان با تجربه ، کسی برای حل این مشکل ایده ای داره ؟ از توجه شما متشکرم و پیشاپیش ممنونم از راهنماییتون لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
fun_code 216 ارسال شده در 17 آبان، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 17 آبان، ۱۳۹۴ @ سلام ممنون از راهنمایی شما اما باز هم مشکل داشت. عکسش رو گذاشتم که متوجه صحبتم بشین. در عکس بالا اونی که قرمز رنگه پنلی هست که با تابع شما ساخته شده. هم مکانش اشتباه هست و هم اینطور که پیداست پنل فقط بصورت عمودی یا افقی ساخته میشه و زاویه ای نداره. با فرض اینکه این مشکل هم حل بشه ، مشکل بزرگتر اینجاست که اگر چند عدد کارت با کمی فاصله و با کمی زاویه چرخش روی هم باشن ، رویداد کلیک هر کارت بدرستی کار نمیکنه. چرا که رویداد کلیک محدود به به پنلی است که افقی یا عمودی تعریف شده... گفتنش سخته... در عکس زیر بهتر مشخصه که منظورم چیه... در عکس زیر 4 عدد کارت با کمی فاصله و چرخش با زاویه های بیشتر روی یکدیگر قرار گرفتند و مستطیل های قرمز رنگ محدوده کلیک هر کارت رو مشخص میکنه. فکر میکنم محدوده کلیک یک شی رو نمیشه بصورت زاویه دار تعیین کرد. یعنی کاری کرد که محدوده کلیک کارت ها چیزی شبیه به عکس زیر باشه ... (مستطیل های قرمز رنگ) فکر میکردم پس چرخش محدوده کلیک هم با عکس set میشه که متاسفانه اینطور نیست. امیدورام تونسته باشم منظورم رو بیان کنم. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مجید آرتا 5,874 ارسال شده در 17 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 17 آبان، ۱۳۹۴ مورد جالبیه نیاز به تحقیق داره لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 17 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 17 آبان، ۱۳۹۴ @@nima_j, اگه اولین پاسخم به اون شکل بود از این بابت بود که فکر نمیکردم بخواید چنین کاری بکنید حتما روی این قضیه هم کار میکنم!!! به امید خدا اگه نتیجه ای حاصل شد تو انجمن میذارم. خودتونم تلاشتون رو بکنید فکر نمیکنم غیرممکن باشه! لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
dostmobile 329 ارسال شده در 13 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 13 آبان، ۱۳۹۴ anim.InitializeRotate("anim",0,180) اون صفر مکان چرخش رو مشخص میکنه لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
fun_code 216 ارسال شده در 13 آبان، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 13 آبان، ۱۳۹۴ anim.InitializeRotate("anim",0,180) اون صفر مکان چرخش رو مشخص میکنه پاسخ سوال بنده بود ؟ یا سوال پرسیدید ؟ اون صفر زاویه شروع چرخش و 180 زاویه نهایی چرخش هست... ببینید مشکل اینجاست که وقتی آبجکت رو میچرخونیم ، مکان کلیک شدن اون تغییر نمیکنه... برای رویداد کلیک زمانی رخ میده که موقعیت قبل چرخش رو لمس میکنیم نه موقعیت جدید بعد از چرخش ! لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
fun_code 216 ارسال شده در 17 آبان، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 17 آبان، ۱۳۹۴ @ ببخشید وقتتون رو میگیرم معمولا سوال های من ، جواب های مبهم و سختی داره. شایدم سوالام بده که جوابی براش پیدا نمیشه... شما راه حلی برای مشکلی که در پست اول عرض کردم ندارید ؟ لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
fun_code 216 ارسال شده در 18 آبان، ۱۳۹۴ سازنده اشتراک گذاری ارسال شده در 18 آبان، ۱۳۹۴ در در 1394/08/17, 22:40:27، Mehran Mahmoudi گفته است : @@nima_j, اگه اولین پاسخم به اون شکل بود از این بابت بود که فکر نمیکردم بخواید چنین کاری بکنید حتما روی این قضیه هم کار میکنم!!! به امید خدا اگه نتیجه ای حاصل شد تو انجمن میذارم. خودتونم تلاشتون رو بکنید فکر نمیکنم غیرممکن باشه! در عکسی اولی که قرار دادم ، خروجی سورس شما بود که مکان عکس چرخیده شده رو درست دریافت نکرده بود و پنل متناسب با عکس ساخته نشده بود... همچنین باز هم رویداد کلیک پنل زاویه دار نیست و ما رو به هدف اصلی نمیرسونه. کلا انگار پس از چرخش left و top عکس هم حقیقی نیست !!! @, @@مجید آرتا برای حل این مشکل راهی که به ذهنم رسید اینه که باید بر اساس canvas و تشخیص رنگ ها کدنویسی کرد. یعنی یک پنل زیر کارت ها باشه ، و یه شی canvas رو با این پنل اینیشیالایز کرد و به ازاء هر کارت یک مستطیل رنگی با همان زاویه چرخش روی پنل رسم کرد... و وقتی کاربر روی پنل کلیک کرد ، متناسب با موقعیت کلیک رنگش رو تشخیص بدیم. هر رنگ هم برای یک کارت در نظر بگیریم و با تشخیص رنگ کلیک شده میفهمیم کدوم کارت انتخاب شده... اینایی که گفتم نیازمند مهارت کافی در استفاده از canvas هست که بنده علمش رو ندارم... فقط میدونم میشه این ایده رو با اون پیاده سازی کرد. اگر دوستان اساتید در استفاده از canvas مهارت دارن لطفا کمک کنند. پیشاپیش ممنونم از لطفتون با روش بالا که عرض کردم مشکل حل شد. فقط چون مربوط به چندین ماه پیش هست سورسش رو پیدا نمیکنم که اینجا بذارم. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
مهران محمودی 778 ارسال شده در 17 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 17 آبان، ۱۳۹۴ درود، متوجه این مشکل نشده بودم! با وجود تمام تلاشی که کردم راه حل اصولی و منطقی برای اینکار پیدا نکردم. ساده ترین راهی که به ذهنم رسید این بود که یه پنل روی ویوی مورد نظرم بعد از اعمال انیمیشن اد کنم و از رویداد کلیک اون پنل استفاده کنم. این تابع رو اضافه کنید: Sub drawOnViewAfterRotate(view As View,panelEventName As String) Dim transparent_Panel As Panel transparent_Panel.Initialize(panelEventName) Activity.AddView(transparent_Panel,view.Left-view.Width,view.Top-view.Height,view.Width,view.Height) transparent_Panel.Color=Colors.Transparent transparent_Panel.Invalidate End Sub در رویداد AnimationEnd: Sub animPlus_AnimationEnd drawOnViewAfterRotate(ImageView1,"ivPnl1") End Sub برای استفاده از رویداد کلیک رو پنل (در واقع کلیک روی ایمیج ویو!): Sub ivPnl1_Click Log("click") End Sub لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
fun_code 216
سلام دوستان
شاید با این مشکل روبرو شده باشید و از خیرش گذشته باشید. اما اگر حل بشه خیلی کاربردیه.
حتما تا الان یک عکس رو با دستورات زیر و با استفاده از کتابخانه انیمیشن پلاس Rotate کردین ...
با این کار عکس 180 درجه میچرخه یعنی طبق شکل زیر از مکان شماره 1 به مکان شماره 2 تغییر مکان میده و به همون شکل باقی میمونه...
اما مشکل اینجاست که در ظاهر مکانش جابجا شده اما در حقیقت مکان عکس هیچ تغییری نکرده !
یعنی اگر جایی که عکس اونجا بوده (مکان شماره 1)رو کلیک کنید ، میبینید رویداد کلیک رخ میده !
و همچنین اگر روی مکانی از عکس که با چرخش به اونجا رفته (مکان شماره 2) کلیک کنید میبینید رویداد کلیک رخ نمیده !
(یعنی روی عکس کلیک میکنیا ، انگار کلیک نکردی... چه نقص بزرگی در این کتابخانه وجود داره !)
از دوستان با تجربه ، کسی برای حل این مشکل ایده ای داره ؟
از توجه شما متشکرم و پیشاپیش ممنونم از راهنماییتون
لینک ارسال
به اشتراک گذاری در سایت های دیگر
8 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.