جا به جایی بین صفحات به شکل انیمیشنی در b4a
سلام خدمت همه برنامه نویسان عزیز b4a
درخدمتتون هستیم بایکی دیگر از آموزش های کاربردی دیگر از بیسیک فور اندروید، در این آموزش میخواهیم نحوه جا به جایی بین اکتیویتی های یک اپلیکیشن به صورت انیمیشنی را آموزش دهیم. پس با بپرسم همراه باشید.
به طور کلی، افکت های انیمیشنی در برنامه، میتواند یک برنامه را بسیار جذاب کند. یکی از این افکت ها، افکت های جا به جایی در صفحات مختلف برنامه است که کاربر میتواند درک کند که واقعا از صفحه ای به صفحه دیگر منتقل شده است. استفاده از این انیمیشن در بیسیک فور اندروید بسیار ساده است.
- به این صورت که ابتدا ماژول AnimationLayout را که در سورس گذاشتیم را به پروژه اضافه میکنیم.
- در مرحله بعد، کتابخانه پیشنیاز این لایوت را به پروژه اضافه میکنیم. این کتابخانه Reflaction نام دارد که به صورت پیشفرض در b4a وجود دارد.
- سپس چهار دستور زیر را در رویدادی قرار میدهیم که به توسط این رویداد، برنامه بین اکتیویتی ها جا به جا میشود. مثل مثلا دکمه بک گوشی. هرکدام از این خط ها یک کار را انجام میدهد و در آن واحد از یک خط استفاده کنید تا قاطی نشود.
۱ ۲ ۳ ۴ |
AnimateLayout.SetAnimation("file1","file2") AnimateLayout.SetAnimation("file3","file4") AnimateLayout.SetAnimation("file1","file3") AnimateLayout.SetAnimation("file2","file4") |
ما در این آموزش هر ۴ حالت را نوشتیم. دیگر این به شما بستگی دارد که از کدام حالت ها استفاده کنید. (البته حالت های دیگری رو هم میتوان اضافه کرد. )
دقت کنید که ورودی های file1 و file2 و file3 و file4 در حقیقت چهار نوع فایل از نوع xml هستند که همگی در پوشه anim و در آدرس زیر ذخیره شده اند: ( پوشه anim در سورس وجود دارد )
۱ |
test\tst\Objects\res |
دقت کنید که قبل از اجرا باید حتما پوشه anim را در ویندوز ReadOnly کنید تا بعد از اجرا پوشه حذف نشود.
چنانچه مشکلی در رابطه با این آموزش داشتید از ما بپرسید 🙂
موفق باشید.
نظر ( 1 )
همه ی مراحل رو انجام دادم و برنامه رو run کردم وقتی روی کلید مورد نظر کلیک کردم ارور زیر آمد
Error occurred on line: 10 (AnimateLayout)
java.lang.ClassNotFoundException: b4a.example.R$anim
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at java.lang.Class.forName(Class.java:378)
at anywheresoftware.b4a.agraham.reflection.Reflection.GetStaticField(Reflection.java:365)
at b4a.example.animatelayout._setanimation(animatelayout.java:48)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:6599)
at android.view.View.performClickInternal(View.java:6576)
at android.view.View.access$3100(View.java:780)
at android.view.View$PerformClick.run(View.java:25899)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
…