رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

پست های پیشنهاد شده

jezireti    2

گروه دانشجو

سلام 

خسته نباشید ...

می‌خوام بازی حافظه رو بنویسم ؛ وقتی گیمر روی عکس کلیک می کنه تا رویت بشه می خوام بصورت انیمیشن باشه. 

کلاس، متد، ... برای اینکار هست ؟!

  • پسندیدم 1

به اشتراک گذاری این ارسال


لینک به ارسال
شایان آباد    6,137

بنیان گذار و مدیر فنی

درود

من همیشه از این انیمیشن استفاده میکنم.

امیدوارم مفید باشه :

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
 
public class Flipper
{
    public enum Directions { LeftToRight, RightToLeft }
 
    public static void FlipItem(UIElement over, UIElement under, Directions direction = Directions.LeftToRight, int duration = 200)
    {
        // setup visible plane
        over.Visibility = Visibility.Visible;
        over.Projection = new PlaneProjection { CenterOfRotationY = 0 };
 
        // setup hidden plane
        under.Visibility = Visibility.Collapsed;
        under.Projection = new PlaneProjection { CenterOfRotationY = 0 };
 
        // gen storyboard
        var _StoryBoard = new System.Windows.Media.Animation.Storyboard();
        var _Duration = TimeSpan.FromMilliseconds(duration);
 
        // add animation: hide-n-show items
        _StoryBoard.Children.Add(CreateVisibility(_Duration, over, false));
        _StoryBoard.Children.Add(CreateVisibility(_Duration, under, true));
 
        // add animation: rotate items
        if (direction == Directions.LeftToRight)
        {
            _StoryBoard.Children.Add(CreateRotation(_Duration, 0, -90, -180, (PlaneProjection)over.Projection));
            _StoryBoard.Children.Add(CreateRotation(_Duration, 180, 90, 0, (PlaneProjection)under.Projection));
        }
        else if (direction == Directions.RightToLeft)
        {
            _StoryBoard.Children.Add(CreateRotation(_Duration, 0, 90, 180, (PlaneProjection)over.Projection));
            _StoryBoard.Children.Add(CreateRotation(_Duration, -180, -90, 0, (PlaneProjection)under.Projection));
        }
 
        // start animation
        _StoryBoard.Begin();
    }
 
    private static DoubleAnimationUsingKeyFrames CreateRotation(TimeSpan duration, double degreesFrom, double degreesMid, double degreesTo, PlaneProjection projection)
    {
        var _One = new EasingDoubleKeyFrame { KeyTime = new TimeSpan(0), Value = degreesFrom, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseIn } };
        var _Two = new EasingDoubleKeyFrame { KeyTime = new TimeSpan(duration.Ticks / 2), Value = degreesMid, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseIn } };
        var _Three = new EasingDoubleKeyFrame { KeyTime = new TimeSpan(duration.Ticks), Value = degreesTo, EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } };
 
        var _Animation = new DoubleAnimationUsingKeyFrames { BeginTime = new TimeSpan(0) };
        _Animation.KeyFrames.Add(_One);
        _Animation.KeyFrames.Add(_Two);
        _Animation.KeyFrames.Add(_Three);
        Storyboard.SetTargetProperty(_Animation, new PropertyPath("RotationY"));
        Storyboard.SetTarget(_Animation, projection);
        return _Animation;
    }
 
    private static ObjectAnimationUsingKeyFrames CreateVisibility(Duration duration, UIElement element, bool show)
    {
        var _One = new DiscreteObjectKeyFrame { KeyTime = new TimeSpan(0), Value = (show ? Visibility.Collapsed : Visibility.Visible) };
        var _Two = new DiscreteObjectKeyFrame { KeyTime = new TimeSpan(duration.TimeSpan.Ticks / 2), Value = (show ? Visibility.Visible : Visibility.Collapsed) };
 
        var _Animation = new ObjectAnimationUsingKeyFrames { BeginTime = new TimeSpan(0) };
        _Animation.KeyFrames.Add(_One);
        _Animation.KeyFrames.Add(_Two);
        Storyboard.SetTargetProperty(_Animation, new PropertyPath("Visibility"));
        Storyboard.SetTarget(_Animation, element);
        return _Animation;
    }
}

موفق باشید

  • پسندیدم 2

به اشتراک گذاری این ارسال


لینک به ارسال

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • مطالب مشابه

    • توسط chatbuzz
      سلام خدمت اساتید محترم 
      اول اینکه خواستم بدونم چطور میشه چند تا عکس با کتابخانه گلاید توی لیست ویو بنمایش در اورد؟
      دوم هم تو خیلی از برنامه ها دیدم وقتی لیست ویو اسکرول میشه به اون position عکس لود میشه و فرضا اگه ۱۰۰۰ ایتم باشه نمیاد یدفعه ای همه رو لود کنه ؟
      ممنون میشم اگه سورس یه مثالی هست ارائه بدین 
      با تشکر
    • توسط Hossein_A82
      درود دوســـــتان . .
      یه سوال داشتم . .
      آیا قبل از یادگیری زبان ++c نیاز به بلد بودن زبان c هست ؟
      یعنی حتما باید c رو بلد باشیم تا بریم سر ++c یا اینکه کمی هم بلد باشیم بسه یا اصلا نیازی نیست که بلد باشیم و یه راست میتونیم بدون بلد بودن c بریم سر ++c ؟
    • توسط hossein22
      با سلام 
      اقا من میخاستم چند تا عکسو مثلا ( از id = 1 تا id = 10 ) بیام عکساشو بگیرم از دیتابیس آفلاین
      هر موقع روی دکمه باتن کلیک کردم بره عکس بعدیو نشون بده 
      تمام آموزش های موجود میان فقط با listview یاد میدن
      ولی من لیست ویو نمیخام فقط عکس هستش که میخام لودش کنم 
      با کتابخانه فراخانی ام این کارو کردم ولی فقط میاد عکس اول رو میگیره یعنی این قابلیتو نداره کتابخانه فراخانی که بیاد از id = 1  تا  id = 10  رو عکس هاشو بگیره فقط اولیرو میگیره
      لطفا راهنمایی کنید من تو تمام انجمن های برنامه نویسی اینو مطرح کردم ولی هیچ کس جواب نداده ممنون میشم جواب بدید
    • توسط علیرضا آه مند
      سلام.
      همون طور که در تایتل تاپیک گفتم میخوام فایل های java رو که برای مود کردن برنامه ویرایش میکنم دوباره به فایل smali تبدیل کنم که بشه اپ رو complie کرد.
      اگر کسی از دوستان روشی برای این کار سراغ داره بگه که من بتونم مشکلم رو حل کنم.
      با تشکر از همه.
  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×