আজকের পর্বে আমরা AnimationUtils ক্লাস এর একটি উদাহরণ দেখার চেষ্টা করব ইনশাআল্লাহ।প্রথমেই আমদের যা করতে হবে তা হল এই AnimationUtils ক্লাস এর জন্য প্রয়োজনীয় জাভা ক্লাস ফাইল সেট করা এবং পাশাপাশি এর xml ফাইলগুলোও সেটআপ করা। AnimationUtils ক্লাস এর ব্যবহারের মূল প্রয়োগ হচ্ছে এর বিভিন্ন animation effect। এর জন্য যা প্রয়োজন হবে তা হচ্ছে Animation Resources এর অধীনে xml এর তৈরি বিভিন্ন animation effect। যেখানে effect গুলো মূলত তৈরি হয় <set> এর ভিতর <scale>, <alpha>, <translate> বিভিন্ন animation ইফেক্ট দ্বারা। এই তৈরি effect গুলো android প্রোজেক্ট এর res ফোল্ডার এর ভিতর আরেকটি তৈরিকৃত ফোল্ডার এ xml ফাইল আকারে রাখতে হয়। যা পরবর্তীতে অ্যাপ তৈরির সময় কাজে লাগে। এখন android প্রোজেক্ট এর MainActivity.java ক্লাসটি নিচের মত করে সেট করি।
package com.encoder.animationutils; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { Button bt1, bt2, bt3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.button1); bt2 = (Button) findViewById(R.id.button2); bt3 = (Button) findViewById(R.id.button3); bt1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, AutoLoadEffect.class); startActivity(i); } }); bt2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, TextEffect.class); startActivity(i); } }); bt3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, ImageEffect.class); startActivity(i); } }); } }
অনুরুপ এর xml ফাইল টিও নিচের মত করে সাজায়ঃ
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/auto_load_effect" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/text_effect" /> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/image_effect" /> </LinearLayout>
এখানে main.xml ফাইল এ তিনটি বাটন সেট করা হয়েছে, যা মূলত তিনটি activity তে আলাদা আলাদা effect প্রদর্শন করার জন্য সেট করা হয়েছে।
AnimationUtils ক্লাস এর একটি সাধারণ ইফেক্ট কার্যকর করার জন্য যে প্রয়োজনীয় কোডটি লাগে তা হলঃ
autoload = AnimationUtils.loadAnimation(this, R.anim.rotate); img.startAnimation(autoload);
এখানে রিসোর্স এর ফোল্ডারকে R.anim এভাবে চিনিয়ে দেয়া হয়েছে এবং এর প্রয়োজনীয় effect কার্যকর করা হয়েছে।
TextEffect.java:
package com.encoder.animationutils; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.TextView; import android.app.Activity; public class TextEffect extends Activity implements AnimationListener { Animation anim; TextView txtmsg; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_text_effect); txtmsg = (TextView) findViewById(R.id.textView1); btn = (Button) findViewById(R.id.textbtn); anim = AnimationUtils.loadAnimation(this, R.anim.sequential); anim.setAnimationListener(this); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txtmsg.setVisibility(View.VISIBLE); txtmsg.startAnimation(anim); } }); } @Override public void onAnimationEnd(Animation arg0) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation arg0) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation arg0) { // TODO Auto-generated method stub } }
অটোইফেক্ট এর জন্য startAnimation মেথড এবং বাটন থেকে listen করে তা কার্যকর করার জন্য সাধারণত setAnimationListener এই মেথডটি ব্যবহার করা হয়।এখানে xml এর Animation Effect সম্পর্কে জানতে চাইলে এই লিঙ্কটি দেখতে পারেন।
আজকের প্রোজেক্টটি এর ডাউনলোড লিঙ্ক।
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।
আমি নাঈম হায়দার ঋদ্ধি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 76 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 6 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
Computer ও Programming পছন্দ, আমার youtube channel https://www.youtube.com/channel/UCYKbAf2kXLgKav30hd3zDPQ . আমার ফেসবুক প্রোফাইল https://www.facebook.com/nayeem.riddhi
Bro my WALTON ZX is bricked…it bricked when i am trying to install recovery.img Now it doesn’t open anymore…only shows boot logo… I can only open android system recovery mood (3e)….when trying to install a zip by adb sideload it shows installation aborted..when i switch off it…cmd command ‘adb device’ shows attached recovery..also doesn’t detect as a qualqom port on qnqc downloader….. Please help…anyone…