একটি ট্রানজিশন কনফিগার করুন

প্যানেলগুলোর মধ্যে পরিবর্তন নির্ধারণ করতে ট্রানজিশন ব্যবহার করুন। একটি প্যানেলের দুটি ভিন্ন রূপের মধ্যে কীভাবে এবং কখন পরিবর্তন করতে হবে, তা বর্ণনা করার জন্য আপনি একটি ট্রানজিশন নির্ধারণ করতে পারেন। আপনি প্রতিটি প্যানেলের জন্য ট্রানজিশনের একটি তালিকা নির্ধারণ করতে পারেন।

একটি একক <TaskPanel> বা <DecorPanel> এর কনফিগারেশনে এক বা একাধিক <Transition> ডেফিনিশনের কন্টেইনার হিসেবে <Transitions> XML ট্যাগটি ব্যবহার করুন। একটি প্যানেল কখন এবং কীভাবে তার ভিজ্যুয়াল অবস্থা এক স্বতন্ত্র রূপ থেকে অন্যটিতে পরিবর্তন করবে, তা নিয়ন্ত্রণ করার জন্য একগুচ্ছ অ্যানিমেশন নিয়ম নির্ধারণ করতে আপনি এই ট্যাগটি ব্যবহার করতে পারেন।

XML অ্যাট্রিবিউট

<Transitions> ট্যাগটি এই চাইল্ড <Transition> এলিমেন্টগুলোর জন্য ডিফল্ট মান নির্ধারণ করতে পারে:

বৈশিষ্ট্য অবস্থা বর্ণনা
<defaultDuration> ঐচ্ছিক

সমস্ত চাইল্ডের ক্ষেত্রে প্রয়োগ করার জন্য মিলিসেকেন্ডে একটি ডিফল্ট সময়কাল নির্দিষ্ট করে।

<Transition> এলিমেন্টগুলো, যেগুলো স্পষ্টভাবে duration অ্যাট্রিবিউট সেট করে না।

যখন এই অ্যাট্রিবিউটটি নির্দিষ্ট করা থাকে না, তখন সিস্টেমের DEFAULT_DURATION কনস্ট্যান্টটি (সাধারণত ৩০০ মিলিসেকেন্ড) ব্যবহৃত হয়।

defaultInterpolator ঐচ্ছিক

একটি অ্যান্ড্রয়েড ইন্টারপোলেটর এক্সএমএল রিসোর্স আইডি নির্দেশ করে। উদাহরণস্বরূপ, @android:anim/accelerate_decelerate_interpolator । যে সমস্ত চাইল্ড <Transition> এলিমেন্ট স্পষ্টভাবে ইন্টারপোলেটর অ্যাট্রিবিউট সেট করে না, তাদের সকলের জন্য এই ইন্টারপোলেটরটি ডিফল্ট হিসেবে ব্যবহৃত হয়।

যদি কোনো ডিফল্ট ইন্টারপোলেটর নির্দিষ্ট করা না থাকে, তাহলে সিস্টেম সাধারণত ডিফল্ট হিসেবে একটি AccelerateDecelerateInterpolator ব্যবহার করে।

XML চাইল্ড এলিমেন্ট

<Transitions> এর চাইল্ড এলিমেন্ট হলো <Transition> , যা PanelState ভ্যারিয়েন্টগুলোর মধ্যে একটি নির্দিষ্ট অ্যানিমেশন পাথ নির্ধারণ করতে ব্যবহৃত মূল এলিমেন্ট। একটি একক <Transitions> ব্লকের মধ্যে একাধিক <Transition> এলিমেন্ট নেস্ট করা যেতে পারে।

নমুনা কোড

এই নমুনায়, fromVariant ঐচ্ছিক। এটি সংজ্ঞায়িত না করা হলে, বর্তমান ভ্যারিয়েন্টটি ব্যবহৃত হয়। যদি fromVariant সংজ্ঞায়িত করা থাকে, তবে ট্রানজিশনটি কেবল তখনই ব্যবহৃত হয় যখন সমস্ত প্যারামিটার মিলে যায়। প্যারামিটারগুলো Event এবং fromVariant এ নির্দিষ্ট করা থাকে।

<Transitions defaultDuration="400"
         defaultInterpolator="@android:anim/linear_interpolator">
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  </Transition>
</Transitions>

রূপান্তর

একটি ট্রানজিশন বর্ণনা করে যে কীভাবে একটি প্যানেলের দুটি ভিন্ন রূপের মধ্যে ভিজ্যুয়াল অবস্থার পরিবর্তনকে অ্যানিমেট করা যায়। একটি ট্রানজিশন এক রূপ থেকে অন্য রূপে যাওয়ার পথটির রূপরেখা দেয়। এটি করার জন্য, ট্রানজিশনটি প্রয়োগ করার জন্য অ্যানিমেশন এবং অ্যানিমেশনটি চালু করার জন্য প্রয়োজনীয় ইভেন্টের মতো বিবরণ নির্দিষ্ট করে।

একটি প্যানেলের ক্ষেত্রে, ট্রানজিশন তার বাউন্ডস, ভিজিবিলিটি এবং আলফার মতো প্রোপার্টিগুলোর জন্য অ্যানিমেশন নির্ধারণ করতে পারে। যদি কোনো কাস্টম অ্যানিমেটর নির্দিষ্ট করা না থাকে, তবে একটি ডিফল্ট অ্যানিমেটর ব্যবহৃত হয়।

XML অ্যাট্রিবিউট

<Transition> ট্যাগটি অ্যানিমেশনের বৈশিষ্ট্য এবং এটি ঘটার শর্তগুলো নির্ধারণ করতে বিভিন্ন অ্যাট্রিবিউট ব্যবহার করে।

XML চাইল্ড এলিমেন্ট

<Event> ইভেন্টের সেই বৈশিষ্ট্যগুলো নির্ধারণ করে যা ট্রানজিশনটি ঘটাতে পারে।

এই ইভেন্টের সাথে যুক্ত প্যানেলটির অনন্য শনাক্তকারী।
বৈশিষ্ট্য অবস্থা বর্ণনা
<id> বাধ্যতামূলক ট্রিগারটি সক্রিয় করার জন্য ইভেন্টের অনন্য শনাক্তকারী।
<panelId> ঐচ্ছিক ইভেন্টের সাথে যুক্ত প্যানেলের অনন্য শনাক্তকারী।
componentName ঐচ্ছিক এই ইভেন্টের সাথে সংশ্লিষ্ট কম্পোনেন্টের নাম।
packageName ঐচ্ছিক ইভেন্টের সাথে সংশ্লিষ্ট প্যাকেজের নাম।

নমুনা কোড

<Transitions defaultDuration="400"
        defaultInterpolator="@android:anim/accelerate_interpolator">
  <!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  <Transition>

  <!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
  <Transition fromVariant="opened_app"
              toVariant="closed_app"
              animator="@animator/close_app">
    <Event id="_System_PanelEmptyEvent"
           panelId="application_panel" />
  <Transition>
</Transitions>