React Native Development

رسوم متحركة لملفات SVG في React Native: دليل شامل

Spread the love

تُوفر رسوم المتجهات القابلة للتحجيم المتحركة (SVGs) في React Native طريقة فعّالة لإنشاء واجهات مستخدم جذابة وعالية الأداء. وعلى عكس الصور النقطية، تحتفظ ملفات SVG بوضوحها على أي مقياس، مما يجعلها مثالية للرسوم المتحركة التي لن تصبح ضبابية أو بكسلية. يوضح هذا الدليل كيفية الاستفادة من واجهة برمجة التطبيقات `Animated` في React Native لتحريك ملفات SVG الخاصة بك بسهولة.

محتويات الجدول

تحريك SVGs باستخدام واجهة برمجة تطبيقات React Native المتحركة

توفر واجهة برمجة التطبيقات `Animated` في React Native حلاً مرنًا وفعالًا لإنشاء الرسوم المتحركة. وهي تعمل من خلال معالجة القيم “القابلة للتحريك” التي تتحكم في خصائص مكونات SVG الخاصة بك. لنبدأ بإعداد مشروعك.

أولاً، قم بتثبيت الحزمة اللازمة:


expo install react-native-svg

أو باستخدام yarn:


yarn add react-native-svg

الآن، دعونا ننشئ رسومًا متحركة بسيطة لمربع دوار:


import React, { useRef, useEffect } from 'react';
import { Animated, StyleSheet } from 'react-native';
import Svg, { Rect } from 'react-native-svg';

const AnimatedSquare = () => {
  const spinValue = useRef(new Animated.Value(0)).current;

  useEffect(() => {
    Animated.loop(
      Animated.timing(spinValue, {
        toValue: 1,
        duration: 2000,
        useNativeDriver: true,
      })
    ).start();
  }, [spinValue]);

  const spin = spinValue.interpolate({
    inputRange: [0, 1],
    outputRange: ['0deg', '360deg'],
  });

  return (
    
      
        
      
    
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

export default AnimatedSquare;

يقوم هذا الكود بإنشاء مربع أحمر يدور باستمرار. تُعد علامة `useNativeDriver: true` ضرورية للأداء، حيث تقوم بتحميل الرسوم المتحركة إلى مؤشر الترابط الأصلي.

تحريك سمات SVG المختلفة

يمكنك تحريك سمات SVG المختلفة بالإضافة إلى الدوران. على سبيل المثال، دعونا نحرك لون مربع التعبئة:


import React, { useRef, useEffect } from 'react';
import { Animated, StyleSheet } from 'react-native';
import Svg, { Rect } from 'react-native-svg';

const AnimatedSquare = () => {
  const colorValue = useRef(new Animated.Value(0)).current;

  useEffect(() => {
    Animated.loop(
      Animated.timing(colorValue, {
        toValue: 1,
        duration: 2000,
        useNativeDriver: true,
      })
    ).start();
  }, [colorValue]);

  const fillColor = colorValue.interpolate({
    inputRange: [0, 1],
    outputRange: ['red', 'blue'],
  });

  return (
    
      
        
      
    
  );
};

// ... styles remain the same

يقوم هذا الكود بالانتقال بسلاسة بين لون تعبئة المربع الأحمر والأزرق.

تقنيات الرسوم المتحركة المتقدمة

استكشف رسومًا متحركة أكثر تعقيدًا باستخدام `Animated.spring`، و`Animated.decay`، وأنواع الرسوم المتحركة الأخرى ضمن واجهة برمجة التطبيقات `Animated`. اجمع بين رسوم متحركة متعددة للحصول على تأثيرات دقيقة. جرّب استخدام دوال التسهيل لضبط سلاسة وتوقيت الرسوم المتحركة.

الخاتمة

يُعد تحريك SVGs في React Native باستخدام واجهة برمجة التطبيقات `Animated` طريقة بسيطة وفعالة لتعزيز الجاذبية البصرية لتطبيقك. تذكر استخدام `useNativeDriver: true` لتحسين الأداء. من خلال تجربة أنواع الرسوم المتحركة وسمات SVG المختلفة، يمكنك إنشاء مجموعة واسعة من الرسوم المتحركة الجذابة والفعالة بصريًا.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *