অ্যানিমেশন সম্পদ

একটি অ্যানিমেশন সংস্থান দুটি ধরণের অ্যানিমেশনগুলির মধ্যে একটিকে সংজ্ঞায়িত করতে পারে:

সম্পত্তি অ্যানিমেশন
একটি Animator দিয়ে একটি নির্দিষ্ট সময়ের মধ্যে একটি বস্তুর সম্পত্তি মান পরিবর্তন করে একটি অ্যানিমেশন তৈরি করে।
অ্যানিমেশন দেখুন

দুটি ধরণের অ্যানিমেশন রয়েছে যা আপনি ভিউ অ্যানিমেশন ফ্রেমওয়ার্ক দিয়ে করতে পারেন:

সম্পত্তি অ্যানিমেশন

XML-এ সংজ্ঞায়িত একটি অ্যানিমেশন যা লক্ষ্য বস্তুর বৈশিষ্ট্য পরিবর্তন করে, যেমন ব্যাকগ্রাউন্ড কালার বা আলফা মান, নির্দিষ্ট সময়ের মধ্যে।

ফাইল অবস্থান:
res/animator/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয়।
সংকলিত সম্পদ ডেটা টাইপ:
একটি ValueAnimator , ObjectAnimator , বা AnimatorSet এ রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভা-ভিত্তিক বা কোটলিন কোডে: R.animator. filename
XML-এ: @[ package :]animator/ filename
সিনট্যাক্স:
<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

ফাইলটিতে একটি একক মূল উপাদান থাকতে হবে: হয় <set> , <objectAnimator> , অথবা <valueAnimator> । আপনি অন্যান্য <set> উপাদান সহ <set> উপাদানের ভিতরে অ্যানিমেশন উপাদানগুলিকে একত্রিত করতে পারেন।

উপাদান:
<set>
একটি ধারক যা অন্যান্য অ্যানিমেশন উপাদান ধারণ করে ( <objectAnimator> , <valueAnimator> , বা অন্যান্য <set> উপাদান)। একটি AnimatorSet প্রতিনিধিত্ব করে।

আপনি আরও গ্রুপ অ্যানিমেশনের জন্য নেস্টেড <set> ট্যাগগুলি নির্দিষ্ট করতে পারেন। প্রতিটি <set> তার নিজস্ব ordering বৈশিষ্ট্য সংজ্ঞায়িত করতে পারে।

গুণাবলী:

android:ordering
কীওয়ার্ড । এই সেটে অ্যানিমেশনের প্লে অর্ডার নির্দিষ্ট করে।
মান বর্ণনা
sequentially এই সেটে ক্রমানুসারে অ্যানিমেশন খেলুন।
together (ডিফল্ট) একই সময়ে এই সেটে অ্যানিমেশন খেলুন।
<objectAnimator>
একটি নির্দিষ্ট সময়ের মধ্যে একটি বস্তুর একটি নির্দিষ্ট সম্পত্তি অ্যানিমেট করে। একটি ObjectAnimator প্রতিনিধিত্ব করে।

গুণাবলী:

android:propertyName
স্ট্রিং প্রয়োজন অ্যানিমেট করার জন্য বস্তুর সম্পত্তি, এটির নাম দ্বারা উল্লেখ করা হয়েছে। উদাহরণস্বরূপ, আপনি একটি View অবজেক্টের জন্য "alpha" বা "backgroundColor" নির্দিষ্ট করতে পারেন। objectAnimator উপাদানটি একটি target অ্যাট্রিবিউট প্রকাশ করে না, তবে, তাই আপনি XML ঘোষণায় বস্তুটিকে অ্যানিমেট করার জন্য সেট করতে পারবেন না। আপনাকে loadAnimator() কল করে আপনার অ্যানিমেশন এক্সএমএল রিসোর্সকে ফুলিয়ে তুলতে হবে, এবং setTarget() কে কল করতে হবে যে টার্গেট অবজেক্টে এই সম্পত্তি রয়েছে তা সেট করতে।
android:valueTo
ভাসা, int, বা রঙপ্রয়োজন মান যেখানে অ্যানিমেটেড সম্পত্তি শেষ হয়। রংগুলিকে ছয়-সংখ্যার হেক্সাডেসিমেল সংখ্যা হিসাবে উপস্থাপন করা হয়, যেমন #333333।
android:valueFrom
ভাসা, int, বা রঙ । মান যেখানে অ্যানিমেটেড সম্পত্তি শুরু হয়। নির্দিষ্ট করা না থাকলে, অ্যানিমেশনটি সম্পত্তির get পদ্ধতি দ্বারা প্রাপ্ত মান থেকে শুরু হয়। রংগুলিকে ছয়-সংখ্যার হেক্সাডেসিমেল সংখ্যা হিসাবে উপস্থাপন করা হয়, যেমন #333333।
android:duration
int অ্যানিমেশনের মিলিসেকেন্ডে সময়। 300 মিলিসেকেন্ড ডিফল্ট।
android:startOffset
int start() এর পরে অ্যানিমেশন যে পরিমাণ মিলিসেকেন্ড বিলম্ব করে তাকে বলা হয়।
android:repeatCount
int একটি অ্যানিমেশন কতবার পুনরাবৃত্তি করতে হবে। অসীমভাবে পুনরাবৃত্তি করতে বা একটি ধনাত্মক পূর্ণসংখ্যাতে "-1" সেট করুন। উদাহরণস্বরূপ, "1" এর মান মানে হল অ্যানিমেশনের প্রাথমিক রানের পরে একবার অ্যানিমেশন পুনরাবৃত্তি হয়, তাই অ্যানিমেশনটি মোট দুইবার বাজায়। ডিফল্ট মান হল "0" , যার মানে কোন পুনরাবৃত্তি নয়৷
android:repeatMode
int একটি অ্যানিমেশন যখন অ্যানিমেশনের শেষে পৌঁছায় তখন কীভাবে আচরণ করে। android:repeatCount একটি ধনাত্মক পূর্ণসংখ্যা বা "-1" এ সেট করতে হবে যাতে এই বৈশিষ্ট্যটি প্রভাব ফেলতে পারে। প্রতিটি পুনরাবৃত্তির সাথে অ্যানিমেশনের বিপরীত দিকনির্দেশ পেতে "reverse" সেট করুন বা প্রতিবার শুরু থেকে অ্যানিমেশন লুপ পেতে "restart"
android:valueType
কীওয়ার্ড । যদি মানটি একটি রঙ হয় তবে এই বৈশিষ্ট্যটি নির্দিষ্ট করবেন না। অ্যানিমেশন ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে রঙের মান পরিচালনা করে।
মান বর্ণনা
intType নির্দিষ্ট করে যে অ্যানিমেটেড মানগুলি পূর্ণসংখ্যা।
floatType (ডিফল্ট) নির্দিষ্ট করে যে অ্যানিমেটেড মানগুলি ফ্লোট।
<animator>
একটি নির্দিষ্ট সময়ের মধ্যে একটি অ্যানিমেশন সম্পাদন করে। একটি ValueAnimator প্রতিনিধিত্ব করে।

গুণাবলী:

android:valueTo
ভাসা, int, বা রঙপ্রয়োজন মান যেখানে অ্যানিমেশন শেষ হয়। রংগুলিকে ছয়-সংখ্যার হেক্সাডেসিমেল সংখ্যা হিসাবে উপস্থাপন করা হয়, যেমন #333333।
android:valueFrom
ভাসা, int, বা রঙপ্রয়োজন মান যেখানে অ্যানিমেশন শুরু হয়। রংগুলিকে ছয়-সংখ্যার হেক্সাডেসিমেল সংখ্যা হিসাবে উপস্থাপন করা হয়, যেমন #333333।
android:duration
int অ্যানিমেশনের মিলিসেকেন্ডে সময়। 300ms হল ডিফল্ট।
android:startOffset
int start() এর পরে অ্যানিমেশন যে পরিমাণ মিলিসেকেন্ড বিলম্ব করে তাকে বলা হয়।
android:repeatCount
int একটি অ্যানিমেশন কতবার পুনরাবৃত্তি করতে হবে। অসীমভাবে পুনরাবৃত্তি করতে বা একটি ধনাত্মক পূর্ণসংখ্যাতে "-1" সেট করুন। উদাহরণস্বরূপ, "1" এর মান মানে হল অ্যানিমেশনের প্রাথমিক রানের পরে একবার অ্যানিমেশন পুনরাবৃত্তি হয়, তাই অ্যানিমেশনটি মোট দুইবার বাজায়। ডিফল্ট মান হল "0" , যার মানে কোন পুনরাবৃত্তি নয়৷
android:repeatMode
int একটি অ্যানিমেশন যখন অ্যানিমেশনের শেষে পৌঁছায় তখন কীভাবে আচরণ করে। android:repeatCount একটি ধনাত্মক পূর্ণসংখ্যা বা "-1" এ সেট করতে হবে যাতে এই বৈশিষ্ট্যটি প্রভাব ফেলতে পারে। প্রতিটি পুনরাবৃত্তির সাথে অ্যানিমেশনের বিপরীত দিকনির্দেশ পেতে "reverse" সেট করুন বা প্রতিবার শুরু থেকে অ্যানিমেশন লুপ পেতে "restart"
android:valueType
কীওয়ার্ড । যদি মানটি একটি রঙ হয় তবে এই বৈশিষ্ট্যটি নির্দিষ্ট করবেন না। অ্যানিমেশন ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে রঙের মান পরিচালনা করে।
মান বর্ণনা
intType নির্দিষ্ট করে যে অ্যানিমেটেড মানগুলি পূর্ণসংখ্যা।
floatType (ডিফল্ট) নির্দিষ্ট করে যে অ্যানিমেটেড মানগুলি ফ্লোট।
উদাহরণ:

XML ফাইল res/animator/property_animator.xml এ সংরক্ষিত হয়েছে :

<set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>

এই অ্যানিমেশনটি চালানোর জন্য, আপনার কোডের XML সংস্থানগুলিকে একটি AnimatorSet অবজেক্টে স্ফীত করুন এবং তারপর অ্যানিমেশন সেট শুরু করার আগে সমস্ত অ্যানিমেশনের জন্য লক্ষ্য বস্তু সেট করুন। setTarget() কল করা AnimatorSet সমস্ত বাচ্চাদের জন্য সুবিধা হিসাবে একটি একক লক্ষ্য বস্তু সেট করে। নিম্নলিখিত কোড দেখায় কিভাবে এটি করতে হয়:

কোটলিন

val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
    .apply {
        setTarget(myObject)
        start()
    }

জাভা

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.animator.property_animator);
set.setTarget(myObject);
set.start();
এছাড়াও দেখুন:

অ্যানিমেশন দেখুন

ভিউ অ্যানিমেশন ফ্রেমওয়ার্ক টুইন এবং ফ্রেম-বাই-ফ্রেম অ্যানিমেশন উভয়কেই সমর্থন করে, যা উভয়ই XML-এ ঘোষণা করা হয়। নিম্নলিখিত বিভাগগুলি কীভাবে উভয় পদ্ধতি ব্যবহার করতে হয় তা বর্ণনা করে।

টুইন অ্যানিমেশন

XML-এ সংজ্ঞায়িত একটি অ্যানিমেশন যা একটি গ্রাফিকে রূপান্তর সম্পাদন করে যেমন ঘূর্ণায়মান, বিবর্ণ, সরানো এবং প্রসারিত করা।

ফাইল অবস্থান:
res/anim/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয়।
সংকলিত সম্পদ ডেটা টাইপ:
একটি Animation রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.anim. filename
XML-এ: @[ package :]anim/ filename
সিনট্যাক্স:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

ফাইলটিতে একটি একক মূল উপাদান থাকতে হবে: হয় একটি <alpha> , <scale> , <translate> , <rotate> , অথবা <set> উপাদান যা অন্যান্য অ্যানিমেশন উপাদানগুলির একটি গ্রুপ (বা গোষ্ঠী) ধারণ করে (নেস্টেড <set> সহ উপাদান)।

উপাদান:
<set>
একটি ধারক যা অন্যান্য অ্যানিমেশন উপাদান ( <alpha> , <scale> , <translate> , <rotate> ) বা অন্যান্য <set> উপাদান ধারণ করে। একটি AnimationSet প্রতিনিধিত্ব করে।

গুণাবলী:

android:interpolator
ইন্টারপোলেটর রিসোর্স । অ্যানিমেশনে আবেদন করার জন্য একটি Interpolator । মানটি অবশ্যই একটি সংস্থানের একটি রেফারেন্স হতে হবে যা একটি ইন্টারপোলেটর নির্দিষ্ট করে, একটি ইন্টারপোলেটর শ্রেণীর নাম নয়। প্ল্যাটফর্ম থেকে ডিফল্ট ইন্টারপোলেটর রিসোর্স পাওয়া যায় অথবা আপনি নিজের ইন্টারপোলেটর রিসোর্স তৈরি করতে পারেন। ইন্টারপোলেটর সম্পর্কে আরও তথ্যের জন্য নিম্নলিখিত আলোচনাটি দেখুন।
android:shareInterpolator
বুলিয়ান "true" যদি আপনি সমস্ত শিশু উপাদানের মধ্যে একই ইন্টারপোলেটর ভাগ করতে চান।
<alpha>
একটি ফেড-ইন বা ফেইড-আউট অ্যানিমেশন। একটি AlphaAnimation প্রতিনিধিত্ব করে।

গুণাবলী:

android:fromAlpha
ভাসা শুরু হচ্ছে অপাসিটি অফসেট, যেখানে 0.0 স্বচ্ছ এবং 1.0 অস্বচ্ছ।
android:toAlpha
ভাসা অস্বচ্ছতা অফসেট শেষ করা, যেখানে 0.0 স্বচ্ছ এবং 1.0 অস্বচ্ছ।

<alpha> দ্বারা সমর্থিত আরও বৈশিষ্ট্যের জন্য, Animation জন্য ক্লাস রেফারেন্স দেখুন, যার XML বৈশিষ্ট্যগুলি এই উপাদান দ্বারা উত্তরাধিকারসূত্রে পাওয়া যায়।

<scale>
একটি রিসাইজিং অ্যানিমেশন। আপনি pivotX এবং pivotY নির্দিষ্ট করে চিত্রটির কেন্দ্র বিন্দু নির্দিষ্ট করতে পারেন যেখান থেকে এটি বাহ্যিক বা ভিতরের দিকে বৃদ্ধি পায়। উদাহরণস্বরূপ, যদি এই মানগুলি 0,0 হয় (উপরের বাম কোণে), সমস্ত বৃদ্ধি নীচে এবং ডানদিকে। একটি ScaleAnimation প্রতিনিধিত্ব করে।

গুণাবলী:

android:fromXScale
ভাসা X আকার অফসেট শুরু হচ্ছে, যেখানে 1.0 কোন পরিবর্তন নেই।
android:toXScale
ভাসা এক্স সাইজ অফসেট শেষ হচ্ছে, যেখানে 1.0 কোন পরিবর্তন নেই।
android:fromYScale
ভাসা ওয়াই সাইজ অফসেট শুরু হচ্ছে, যেখানে 1.0 কোন পরিবর্তন নেই।
android:toYScale
ভাসা Y আকার অফসেট শেষ হচ্ছে, যেখানে 1.0 কোন পরিবর্তন নেই।
android:pivotX
ভাসা যখন বস্তুটি স্কেল করা হয় তখন X স্থানাঙ্ক স্থির থাকে।
android:pivotY
ভাসা বস্তুটি স্কেল করার সময় Y স্থানাঙ্ক স্থির থাকে।

<scale> দ্বারা সমর্থিত আরও বৈশিষ্ট্যের জন্য, Animation জন্য ক্লাস রেফারেন্স দেখুন, যার XML বৈশিষ্ট্যগুলি এই উপাদান দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত।

<translate>
একটি উল্লম্ব এবং/অথবা অনুভূমিক গতি। একটি TranslateAnimation প্রতিনিধিত্ব করে। এই তিনটি ফরম্যাটের যেকোনো একটিতে নিম্নলিখিত বৈশিষ্ট্যগুলিকে সমর্থন করে:
  • -100 থেকে 100 পর্যন্ত মানগুলি "%" দিয়ে শেষ হয়, নিজের সাথে সম্পর্কিত একটি শতাংশ নির্দেশ করে৷
  • -100 থেকে 100 পর্যন্ত মানগুলি "%p" এ শেষ হয়, এটির অভিভাবকের সাথে সম্পর্কিত একটি শতাংশ নির্দেশ করে৷
  • কোনো প্রত্যয় ছাড়া একটি ফ্লোট মান, একটি পরম মান নির্দেশ করে।

গুণাবলী:

android:fromXDelta
ফ্লোট বা শতাংশ । এক্স অফসেট শুরু হচ্ছে। সাধারণ অবস্থানের তুলনায় পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; উপাদান প্রস্থের তুলনায় শতাংশে, যেমন "5%" ; বা প্যারেন্ট প্রস্থের তুলনায় শতাংশে, যেমন "5%p"
android:toXDelta
ফ্লোট বা শতাংশ । এক্স অফসেট শেষ হচ্ছে। সাধারণ অবস্থানের তুলনায় পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; উপাদান প্রস্থের তুলনায় শতাংশে, যেমন "5%" ; বা প্যারেন্ট প্রস্থের তুলনায় শতাংশে, যেমন "5%p"
android:fromYDelta
ফ্লোট বা শতাংশ । Y অফসেট শুরু হচ্ছে। সাধারণ অবস্থানের তুলনায় পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; উপাদান উচ্চতার তুলনায় শতাংশে, যেমন "5%" ; বা পিতামাতার উচ্চতার তুলনায় শতাংশে, যেমন "5%p"
android:toYDelta
ফ্লোট বা শতাংশ । Y অফসেট শেষ হচ্ছে। সাধারণ অবস্থানের তুলনায় পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; উপাদান উচ্চতার তুলনায় শতাংশে, যেমন "5%" ; বা পিতামাতার উচ্চতার তুলনায় শতাংশে, যেমন "5%p"

<translate> দ্বারা সমর্থিত আরও বৈশিষ্ট্যের জন্য, Animation জন্য ক্লাস রেফারেন্স দেখুন, যার XML বৈশিষ্ট্যগুলি এই উপাদান দ্বারা উত্তরাধিকারসূত্রে পাওয়া যায়।

<rotate>
একটি ঘূর্ণন অ্যানিমেশন। একটি RotateAnimation প্রতিনিধিত্ব করে।

গুণাবলী:

android:fromDegrees
ভাসা ডিগ্রীতে কৌণিক অবস্থান শুরু হচ্ছে।
android:toDegrees
ভাসা কৌণিক অবস্থান শেষ, ডিগ্রী মধ্যে.
android:pivotX
ফ্লোট বা শতাংশ । ঘূর্ণনের কেন্দ্রের X স্থানাঙ্ক। বস্তুর বাম প্রান্তের সাপেক্ষে পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; বস্তুর বাম প্রান্তের সাপেক্ষে শতাংশে, যেমন "5%" ; অথবা প্যারেন্ট কন্টেইনারের বাম প্রান্তের তুলনায় শতাংশে, যেমন "5%p"
android:pivotY
ফ্লোট বা শতাংশ । ঘূর্ণনের কেন্দ্রের Y স্থানাঙ্ক। বস্তুর উপরের প্রান্তের সাপেক্ষে পিক্সেলে প্রকাশ করা হয়, যেমন "5" ; বস্তুর উপরের প্রান্তের তুলনায় শতাংশে, যেমন "5%" ; বা প্যারেন্ট কন্টেইনারের উপরের প্রান্তের তুলনায় শতাংশে, যেমন "5%p"

<rotate> দ্বারা সমর্থিত আরও বৈশিষ্ট্যের জন্য, Animation জন্য ক্লাস রেফারেন্স দেখুন, যার XML বৈশিষ্ট্যগুলি এই উপাদান দ্বারা উত্তরাধিকারসূত্রে পাওয়া যায়।

উদাহরণ:

XML ফাইল res/anim/hyperspace_jump.xml এ সংরক্ষিত হয়েছে:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
    <set
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="700">
        <scale
            android:fromXScale="1.4"
            android:toXScale="0.0"
            android:fromYScale="0.6"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-45"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
    </set>
</set>

নিম্নলিখিত অ্যাপ্লিকেশন কোডটি একটি ImageView এ অ্যানিমেশন প্রয়োগ করে এবং অ্যানিমেশন শুরু করে:

কোটলিন

val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
image.startAnimation(hyperspaceJump)

জাভা

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
এছাড়াও দেখুন:

ইন্টারপোলেটর

একটি ইন্টারপোলেটর হল XML-এ সংজ্ঞায়িত একটি অ্যানিমেশন সংশোধক যা একটি অ্যানিমেশনের পরিবর্তনের হারকে প্রভাবিত করে। এটি আপনার বিদ্যমান অ্যানিমেশন প্রভাবগুলিকে ত্বরান্বিত, হ্রাস, পুনরাবৃত্তি, বাউন্স ইত্যাদি হতে দেয়।

android:interpolator interpolator অ্যাট্রিবিউট সহ একটি অ্যানিমেশন উপাদানে একটি ইন্টারপোলেটর প্রয়োগ করা হয়, যার মানটি একটি ইন্টারপোলেটর সম্পদের একটি রেফারেন্স।

অ্যান্ড্রয়েডে উপলব্ধ সমস্ত ইন্টারপোলেটরগুলি Interpolator ক্লাসের সাবক্লাস। প্রতিটি ইন্টারপোলেটর ক্লাসের জন্য, অ্যান্ড্রয়েডে একটি পাবলিক রিসোর্স রয়েছে যা আপনি android:interpolator অ্যাট্রিবিউট ব্যবহার করে একটি অ্যানিমেশনে ইন্টারপোলেটর প্রয়োগ করতে উল্লেখ করতে পারেন। নিম্নলিখিত সারণী প্রতিটি ইন্টারপোলেটরের জন্য ব্যবহার করার জন্য সম্পদ নির্দিষ্ট করে:

ইন্টারপোলেটর ক্লাস রিসোর্স আইডি
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
AccelerateInterpolator @android:anim/accelerate_interpolator
AnticipateInterpolator @android:anim/anticipate_interpolator
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
BounceInterpolator @android:anim/bounce_interpolator
CycleInterpolator @android:anim/cycle_interpolator
DecelerateInterpolator @android:anim/decelerate_interpolator
LinearInterpolator @android:anim/linear_interpolator
OvershootInterpolator @android:anim/overshoot_interpolator

android:interpolator অ্যাট্রিবিউট দিয়ে আপনি কীভাবে এর মধ্যে একটি প্রয়োগ করতে পারেন তা এখানে:

<set android:interpolator="@android:anim/accelerate_interpolator">
    ...
</set>

কাস্টম ইন্টারপোলেটর

আপনি যদি প্ল্যাটফর্ম দ্বারা প্রদত্ত ইন্টারপোলেটরগুলির সাথে সন্তুষ্ট না হন তবে আপনি পরিবর্তিত বৈশিষ্ট্যগুলির সাথে একটি কাস্টম ইন্টারপোলেটর সংস্থান তৈরি করতে পারেন৷ উদাহরণস্বরূপ, আপনি AnticipateInterpolator এর জন্য ত্বরণের হার সামঞ্জস্য করতে পারেন বা CycleInterpolator এর জন্য চক্রের সংখ্যা সামঞ্জস্য করতে পারেন। এটি করার জন্য, আপনি একটি XML ফাইলে আপনার নিজস্ব ইন্টারপোলেটর সংস্থান তৈরি করুন।

ফাইল অবস্থান:
res/anim/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয়।
সংকলিত সম্পদ ডেটা টাইপ:
সংশ্লিষ্ট ইন্টারপোলেটর অবজেক্টে রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
XML-এ: @[ package :]anim/ filename
সিনট্যাক্স:
<?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
    android:attribute_name="value"
    />

আপনি যদি কোনো অ্যাট্রিবিউট প্রয়োগ না করেন, তাহলে আপনার ইন্টারপোলেটর ঠিক একইভাবে কাজ করে যেমনটি প্ল্যাটফর্ম দ্বারা প্রদত্ত, পূর্ববর্তী সারণীতে তালিকাভুক্ত।

উপাদান:
লক্ষ্য করুন যে প্রতিটি Interpolator বাস্তবায়ন, যখন XML-এ সংজ্ঞায়িত করা হয়, তখন একটি নাম থাকে যা একটি ছোট হাতের অক্ষর দিয়ে শুরু হয়।

<accelerateDecelerateInterpolator>
পরিবর্তনের হার ধীরে ধীরে শুরু হয় এবং শেষ হয় কিন্তু মাঝখানের মধ্য দিয়ে ত্বরান্বিত হয়।

কোন বৈশিষ্ট্য নেই.

<accelerateInterpolator>
পরিবর্তনের হার ধীরে ধীরে শুরু হয়, তারপর ত্বরান্বিত হয়।

গুণাবলী:

android:factor
ভাসা ত্বরণ হার। ডিফল্ট হল 1।
<anticipateInterpolator>
পরিবর্তন শুরু হয় পিছনের দিকে, তারপর সামনের দিকে ছুটে যায়।

গুণাবলী:

android:tension
ভাসা টেনশনের পরিমাণ প্রয়োগ করতে হবে। ডিফল্ট হল 2।
<anticipateOvershootInterpolator>
পরিবর্তনটি পিছনের দিকে শুরু হয়, তারপরে সামনের দিকে ছুটে যায় এবং লক্ষ্য মানটিকে ছাড়িয়ে যায়, তারপর চূড়ান্ত মানটিতে স্থির হয়।

গুণাবলী:

android:tension
ভাসা টেনশনের পরিমাণ প্রয়োগ করতে হবে। ডিফল্ট হল 2।
android:extraTension
ভাসা যে রাশি দ্বারা টেনশনকে গুণ করতে হবে। ডিফল্ট হল 1.5।
<bounceInterpolator>
পরিবর্তন শেষে বাউন্স.

কোন বৈশিষ্ট্য নেই

<cycleInterpolator>
একটি নির্দিষ্ট সংখ্যক চক্রের জন্য অ্যানিমেশন পুনরাবৃত্তি করে। পরিবর্তনের হার একটি সাইনোসয়েডাল প্যাটার্ন অনুসরণ করে।

গুণাবলী:

android:cycles
পূর্ণসংখ্যা । চক্রের সংখ্যা। ডিফল্ট হল 1।
<decelerateInterpolator>
পরিবর্তনের হার দ্রুত শুরু হয়, তারপর হ্রাস পায়।

গুণাবলী:

android:factor
ভাসা মন্দার হার। ডিফল্ট হল 1।
<linearInterpolator>
পরিবর্তনের হার স্থির।

কোন বৈশিষ্ট্য নেই.

<overshootInterpolator>
পরিবর্তনটি এগিয়ে যায় এবং শেষ মানটিকে ছাড়িয়ে যায়, তারপরে ফিরে আসে।

গুণাবলী:

android:tension
ভাসা টেনশনের পরিমাণ প্রয়োগ করতে হবে। ডিফল্ট হল 2।
উদাহরণ:

XML ফাইল res/anim/my_overshoot_interpolator.xml এ সংরক্ষিত হয়েছে:

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"
    />

এই অ্যানিমেশন XML ইন্টারপোলেটর প্রয়োগ করে:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    android:fromXScale="1.0"
    android:toXScale="3.0"
    android:fromYScale="1.0"
    android:toYScale="3.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" />

ফ্রেম অ্যানিমেশন

XML-এ সংজ্ঞায়িত একটি অ্যানিমেশন যা ছবির মতো ক্রমানুসারে চিত্রগুলির একটি ক্রম দেখায়।

ফাইল অবস্থান:
res/drawable/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয়।
সংকলিত সম্পদ ডেটা টাইপ:
একটি AnimationDrawable রিসোর্স পয়েন্টার
সম্পদ রেফারেন্স:
জাভাতে: R.drawable. filename
XML-এ: @[ package :]drawable. filename
সিনট্যাক্স:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource_name"
        android:duration="integer" />
</animation-list>
উপাদান:
<animation-list>
প্রয়োজন এই মূল উপাদান হতে হবে. এক বা একাধিক <item> উপাদান রয়েছে।

গুণাবলী:

android:oneshot
বুলিয়ান "true" যদি আপনি একবার অ্যানিমেশন করতে চান; অ্যানিমেশন লুপ করতে "false"
<item>
অ্যানিমেশনের একটি একক ফ্রেম। একটি <animation-list> উপাদানের সন্তান হতে হবে।

গুণাবলী:

android:drawable
অঙ্কনযোগ্য সম্পদ । এই ফ্রেমের জন্য ব্যবহার করার জন্য অঙ্কনযোগ্য।
android:duration
পূর্ণসংখ্যা । এই ফ্রেমটি দেখানোর সময়কাল, মিলিসেকেন্ডে।
উদাহরণ:

XML ফাইল res/drawable/rocket_thrust.xml এ সংরক্ষিত হয়েছে:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

নিম্নলিখিত অ্যাপ্লিকেশন কোডটি একটি View এর পটভূমি হিসাবে অ্যানিমেশন সেট করে, তারপর অ্যানিমেশনটি চালান:

কোটলিন

val rocketImage: ImageView = findViewById(R.id.rocket_image)
rocketImage.setBackgroundResource(R.drawable.rocket_thrust)

val rocketAnimation = rocketImage.background
if (rocketAnimation is Animatable) {
    rocketAnimation.start()
}

জাভা

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = rocketImage.getBackground();
if (rocketAnimation instanceof Animatable) {
    ((Animatable)rocketAnimation).start();
}
এছাড়াও দেখুন: