অ্যানিমেশনগুলি ভিজ্যুয়াল সংকেত যোগ করতে পারে যা ব্যবহারকারীদের আপনার অ্যাপে কী ঘটছে সে সম্পর্কে অবহিত করে। এগুলি বিশেষ করে যখন UI এর অবস্থা পরিবর্তন হয়, যেমন যখন নতুন কন্টেন্ট লোড হয় বা নতুন অ্যাকশন উপলব্ধ হয় তখন কার্যকর। অ্যানিমেশনগুলি আপনার অ্যাপে একটি মসৃণ চেহারাও যোগ করে, যা এটিকে একটি উচ্চ মানের চেহারা এবং অনুভূতি দেয়।
আপনি কোন ধরণের অ্যানিমেশন চান তার উপর নির্ভর করে অ্যান্ড্রয়েডে বিভিন্ন অ্যানিমেশন API রয়েছে। এই ডকুমেন্টেশনটি আপনার UI-তে গতি যোগ করার বিভিন্ন উপায়ের একটি সারসংক্ষেপ প্রদান করে।
কখন অ্যানিমেশন ব্যবহার করা উচিত তা আরও ভালোভাবে বুঝতে, গতি সম্পর্কে মেটেরিয়াল ডিজাইন নির্দেশিকাটিও দেখুন।
বিটম্যাপ অ্যানিমেট করুন
চিত্র ১। একটি অ্যানিমেটেড অঙ্কনযোগ্য ছবি।
আইকন বা চিত্রের মতো বিটম্যাপ গ্রাফিক অ্যানিমেট করতে, ড্রয়েবল অ্যানিমেশন API ব্যবহার করুন। সাধারণত, এই অ্যানিমেশনগুলি একটি ড্রয়েবল রিসোর্সের সাহায্যে স্ট্যাটিক্যালি সংজ্ঞায়িত করা হয়, তবে আপনি রানটাইমে অ্যানিমেশন আচরণও সংজ্ঞায়িত করতে পারেন।
উদাহরণস্বরূপ, ব্যবহারকারীকে বোঝানোর একটি চমৎকার উপায় হল দুটি ক্রিয়া সম্পর্কিত একটি প্লে বোতাম অ্যানিমেট করা যা ট্যাপ করলে একটি পজ বোতামে রূপান্তরিত হয়।
আরও তথ্যের জন্য, অ্যানিমেট ড্রয়েবল গ্রাফিক্স পড়ুন।
UI দৃশ্যমানতা এবং গতি অ্যানিমেট করুন
চিত্র ২। যখন একটি ডায়ালগ প্রদর্শিত হয় এবং অদৃশ্য হয়ে যায় তখন একটি সূক্ষ্ম অ্যানিমেশন UI পরিবর্তনকে কম বিরক্তিকর করে তোলে।
যখন আপনার লেআউটে দৃশ্যমানতা বা ভিউয়ের অবস্থান পরিবর্তন করার প্রয়োজন হয়, তখন ব্যবহারকারীকে UI কীভাবে পরিবর্তন হচ্ছে তা বুঝতে সাহায্য করার জন্য সূক্ষ্ম অ্যানিমেশন অন্তর্ভুক্ত করা ভালো।
বর্তমান লেআউটের মধ্যে ভিউ সরাতে, প্রকাশ করতে বা লুকাতে, আপনি android.animation প্যাকেজ দ্বারা প্রদত্ত প্রপার্টি অ্যানিমেশন সিস্টেম ব্যবহার করতে পারেন, যা Android 3.0 (API লেভেল 11) এবং উচ্চতর সংস্করণে উপলব্ধ। এই APIগুলি আপনার View অবজেক্টের বৈশিষ্ট্যগুলিকে নির্দিষ্ট সময়ের মধ্যে আপডেট করে, বৈশিষ্ট্যগুলি পরিবর্তনের সাথে সাথে ক্রমাগত ভিউটিকে পুনরায় অঙ্কন করে। উদাহরণস্বরূপ, যখন আপনি অবস্থানের বৈশিষ্ট্যগুলি পরিবর্তন করেন, তখন ভিউটি স্ক্রিন জুড়ে সরে যায়। যখন আপনি আলফা বৈশিষ্ট্য পরিবর্তন করেন, তখন ভিউটি ভিতরে বা বাইরে চলে যায়।
এই অ্যানিমেশনগুলি তৈরি করার সবচেয়ে সহজ উপায়ের জন্য, আপনার লেআউটে অ্যানিমেশনগুলি সক্ষম করুন যাতে আপনি যখন কোনও দৃশ্যের দৃশ্যমানতা পরিবর্তন করেন, তখন একটি অ্যানিমেশন স্বয়ংক্রিয়ভাবে প্রয়োগ হয়। আরও তথ্যের জন্য, অটো অ্যানিমেট লেআউট আপডেট দেখুন।
প্রপার্টি অ্যানিমেশন সিস্টেম ব্যবহার করে অ্যানিমেশন তৈরি করতে শিখতে, প্রপার্টি অ্যানিমেশন ওভারভিউ পড়ুন। সাধারণ অ্যানিমেশন তৈরি করতে আপনি নিম্নলিখিত পৃষ্ঠাগুলিও দেখতে পারেন:
পদার্থবিদ্যা-ভিত্তিক গতি
চিত্র ৩। অবজেক্টঅ্যানিমেটর দিয়ে তৈরি অ্যানিমেশন।
চিত্র ৪। পদার্থবিদ্যা-ভিত্তিক API ব্যবহার করে তৈরি অ্যানিমেশন।
যখনই সম্ভব, আপনার অ্যানিমেশনগুলিতে বাস্তব-বিশ্বের পদার্থবিদ্যা প্রয়োগ করুন যাতে সেগুলি প্রাকৃতিক দেখায়। উদাহরণস্বরূপ, যখন তাদের লক্ষ্য পরিবর্তন হয় তখন তাদের গতি বজায় রাখা উচিত এবং যেকোনো পরিবর্তনের সময় মসৃণ রূপান্তর করা উচিত।
এই আচরণগুলি প্রদানের জন্য, Android সাপোর্ট লাইব্রেরিতে পদার্থবিদ্যা-ভিত্তিক অ্যানিমেশন API অন্তর্ভুক্ত রয়েছে যা আপনার অ্যানিমেশনগুলি কীভাবে ঘটে তা নিয়ন্ত্রণ করতে পদার্থবিদ্যার আইনের উপর নির্ভর করে।
দুটি সাধারণ পদার্থবিদ্যা-ভিত্তিক অ্যানিমেশন হল:
পদার্থবিদ্যার উপর ভিত্তি করে নয় এমন অ্যানিমেশনগুলি - যেমন ObjectAnimator API দিয়ে তৈরি অ্যানিমেশনগুলি - মোটামুটি স্থির এবং একটি নির্দিষ্ট সময়কাল থাকে। যদি লক্ষ্য মান পরিবর্তন হয়, তাহলে লক্ষ্য মান পরিবর্তনের সময় আপনাকে অ্যানিমেশনটি বাতিল করতে হবে, নতুন শুরু মান হিসাবে একটি নতুন মান দিয়ে অ্যানিমেশনটি পুনরায় কনফিগার করতে হবে এবং নতুন লক্ষ্য মান যুক্ত করতে হবে। দৃশ্যত, এই প্রক্রিয়াটি অ্যানিমেশনে একটি আকস্মিক বিরতি তৈরি করে এবং পরে একটি বিচ্ছিন্ন আন্দোলন তৈরি করে, যেমন চিত্র 3-এ দেখানো হয়েছে।
পদার্থবিদ্যা-ভিত্তিক অ্যানিমেশন API, যেমন DynamicAnimation , ব্যবহার করে তৈরি অ্যানিমেশনগুলি বল দ্বারা চালিত হয়। লক্ষ্য মানের পরিবর্তনের ফলে বলের পরিবর্তন হয়। নতুন বল বিদ্যমান বেগের উপর প্রযোজ্য হয়, যা নতুন লক্ষ্যে ক্রমাগত রূপান্তর ঘটায়। এই প্রক্রিয়ার ফলে আরও প্রাকৃতিক চেহারার অ্যানিমেশন তৈরি হয়, যেমন চিত্র 4-এ দেখানো হয়েছে।
অ্যানিমেট লেআউট পরিবর্তন
চিত্র ৫। লেআউট পরিবর্তন করে অথবা নতুন কার্যকলাপ শুরু করে আরও বিশদ বিবরণ দেখানোর জন্য একটি অ্যানিমেশন অর্জন করা যেতে পারে।
অ্যান্ড্রয়েড ৪.৪ (এপিআই লেভেল ১৯) এবং তার উচ্চতর সংস্করণে, আপনি বর্তমান অ্যাক্টিভিটি বা ফ্র্যাগমেন্টের মধ্যে লেআউটটি অদলবদল করার সময় অ্যানিমেশন তৈরি করতে ট্রানজিশন ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। আপনাকে যা করতে হবে তা হল শুরু এবং শেষের লেআউট এবং আপনি কোন ধরণের অ্যানিমেশন ব্যবহার করতে চান তা নির্দিষ্ট করতে হবে। তারপর সিস্টেমটি দুটি লেআউটের মধ্যে একটি অ্যানিমেশন বের করে এবং কার্যকর করে। আপনি এটি ব্যবহার করে সম্পূর্ণ UI অদলবদল করতে বা কিছু ভিউ সরাতে বা প্রতিস্থাপন করতে পারেন।
উদাহরণস্বরূপ, যখন ব্যবহারকারী আরও তথ্য দেখার জন্য কোনও আইটেমে ট্যাপ করেন, তখন আপনি চিত্র ৫-এ দেখানো ট্রানজিশন প্রয়োগ করে আইটেমের বিবরণ দিয়ে লেআউটটি প্রতিস্থাপন করতে পারেন।
শুরু এবং শেষের লেআউট প্রতিটি একটি Scene এ সংরক্ষণ করা হয়, যদিও শুরুর দৃশ্য সাধারণত বর্তমান লেআউট থেকে স্বয়ংক্রিয়ভাবে নির্ধারিত হয়। আপনি কোন ধরণের অ্যানিমেশন চান তা সিস্টেমকে জানানোর জন্য একটি Transition তৈরি করেন, তারপর TransitionManager.go() কল করুন এবং সিস্টেমটি লেআউটগুলি অদলবদল করার জন্য অ্যানিমেশনটি চালায়।
আরও তথ্যের জন্য, "ট্রানজিশন ব্যবহার করে অ্যানিমেট লেআউট পরিবর্তন" পড়ুন। নমুনা কোডের জন্য, BasicTransition দেখুন।
কার্যকলাপের মধ্যে অ্যানিমেট করুন
অ্যান্ড্রয়েড ৫.০ (এপিআই লেভেল ২১) এবং তার উচ্চতর সংস্করণে, আপনি এমন অ্যানিমেশনও তৈরি করতে পারেন যা আপনার কার্যকলাপের মধ্যে পরিবর্তন আনে। এটি পূর্ববর্তী বিভাগে বর্ণিত একই রূপান্তর কাঠামোর উপর ভিত্তি করে তৈরি, তবে এটি আপনাকে পৃথক কার্যকলাপে লেআউটের মধ্যে অ্যানিমেশন তৈরি করতে দেয়।
আপনি সহজ অ্যানিমেশন প্রয়োগ করতে পারেন যেমন নতুন অ্যাক্টিভিটিটি পাশ থেকে স্লাইড করা বা ফেইড করা, তবে আপনি এমন অ্যানিমেশনও তৈরি করতে পারেন যা প্রতিটি অ্যাক্টিভিটিতে ভাগ করা ভিউগুলির মধ্যে রূপান্তর করে। উদাহরণস্বরূপ, যখন ব্যবহারকারী আরও তথ্য দেখতে কোনও আইটেমে ট্যাপ করেন, তখন আপনি এমন একটি অ্যানিমেশন দিয়ে একটি নতুন অ্যাক্টিভিটিতে রূপান্তর করতে পারেন যা স্ক্রিনটি পূরণ করার জন্য সেই আইটেমটিকে নির্বিঘ্নে বৃদ্ধি করে, যেমন চিত্র 5-এ দেখানো অ্যানিমেশন।
যথারীতি, আপনি startActivity() কল করেন, কিন্তু ActivityOptions.makeSceneTransitionAnimation() দ্বারা প্রদত্ত বিকল্পগুলির একটি বান্ডিল এটিতে দিন। বিকল্পগুলির এই বান্ডিলে অন্তর্ভুক্ত থাকতে পারে কোন ভিউগুলি অ্যানিমেশনের সময় ক্রিয়াকলাপগুলির মধ্যে ভাগ করা হয় যাতে ট্রানজিশন ফ্রেমওয়ার্ক তাদের সংযুক্ত করতে পারে।
অতিরিক্ত সম্পদের জন্য, দেখুন:
