ایجاد Android Card Flip Animation با استفاده از Gesture Event (بخش اول)

سه شنبه 13 مهر 1395

در این مقاله ، نحوه ساخت یک Xamarin Android flip card animation در بین بخش های برنامه را خواهیم آموخت. برای ساخت این برنامه از Gesture Event ها بهره می گیریم.

ایجاد Android Card Flip Animation با استفاده از Gesture Event (بخش اول)

مرحله 1-از طریق مسیر زیر، یک پروژه جدید ایجاد کنید.

Visual Studio->New Project->Templates->Visual C#->Android->Blank App

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

مرحله 2- به مسیر Solution Explorer-> Project Name->Resources->Layout بروید و یک Android Layout به نام Card_Front.axml به برنامه اضافه کنید.

مرحله 3- به مسیر Solution Explorer-> Project Name-> Resources-> Layout-> Main.axml بروید. در بخش Design View، کدهای زیر را وارد نمایید.

کد XAML

<?xml version="1.0" encoding="utf-8"?>    
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
      android:orientation="vertical"    
      android:layout_width="match_parent"    
      android:layout_height="match_parent"    
      android:minWidth="25px"    
      android:minHeight="25px">    
   <FrameLayout    
      android:minWidth="25px"    
      android:minHeight="25px"    
      android:layout_width="match_parent"    
      android:layout_height="match_parent"    
      android:id="@+id/frameLayout1" />    
   </LinearLayout> 

مرحله 4- به مسیر Solution Explorer-> Project Name-> Resources-> layout->Card_Front.axml بروید.

مرحله 5- از نوار ابزار، یک Image VIew به درون صفحه بکشید و بیاورید.

کد AXML

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
      android:orientation="vertical"    
      android:layout_width="match_parent"   
      android:layout_height="match_parent"   
      android:minWidth="25px"    
      android:minHeight="25px">    
   <ImageView    
      android:src="@drawable/rose"    
      android:layout_width="match_parent"    
      android:layout_height="wrap_content"   
      android:id="@+id/imageView1"    
      android:scaleType="center"    
      android:contentDescription="Image" />  
</LinearLayout>

مرحله 6- صفحه ی MainActivity.cs را باز کنید  و یک متغیر Gesture  ایجاد کنید.

GestureDetector gesturedetector;

مرحله 7- در درون Oncreate()، یک gesture event و یک Fragment transaction ایجاد کنید.

کد #C

    gesturedetector = new GestureDetector(this, new MyGestureListener(this));  
    if (bundle == null)  
    {  
        FragmentTransaction trans = FragmentManager.BeginTransaction();  
        trans.Add(Resource.Id.frameLayout1, new CardFrontFragment());  
        trans.Commit();  
    }  

مرحله 8- یک کلاس به نام CardFrontFragment ایجاد کنید.

کد #C

    public class CardFrontFragment: Fragment  
    {  
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)  
        {  
            View frontcard_view = inflater.Inflate(Resource.Layout.card_front, container, false);  
            frontcard_view.Touch += Frontcard_view_Touch;  
            return frontcard_view;  
        }  
        private void Frontcard_view_Touch(object sender, View.TouchEventArgs e) {  
            MainActivity myactivity = Activity as MainActivity;  
            myactivity.gesturedetector.OnTouchEvent(e.Event);  
        }  
    }  

مرحله 9- در زیر CardFrontFragment.class یک کلاس دیگر برای MyGestureListener ایجاد کنید. ما در اینجا gesture  را به وسیله رویداد کلیک، DoubleClick(), scroll(), LongPress(), OnFling() تعریف می کنیم.

کد #C

    public class MyGestureListener: GestureDetector.SimpleOnGestureListener {  
        public override bool OnDoubleTap(MotionEvent e) {  
            Console.WriteLine("Double Tab");  
            return true;  
        }  
        public override void OnLongPress(MotionEvent e) {  
            Console.WriteLine("Long Press");  
        }  
        public override bool OnFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {  
            Console.WriteLine("Fling");  
            return base.OnFling(e1, e2, velocityX, velocityY);  
        }  
        public override bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {  
            Console.WriteLine("Scroll");  
            return base.OnScroll(e1, e2, distanceX, distanceY);  
        }  
    }  

مرحله 10-برنامه را اجرا کنید تا خروجی را ببینید.

آموزش برنامه نویسی اندروید با سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید