পোস্টগুলি

মার্চ, ২০১৮ থেকে পোস্টগুলি দেখানো হচ্ছে

cardview

ছবি
এই পর্বে আমরা CardView এর ব্যাবহার দেখবো । CardView এর মাধ্যমে অনেক সুন্দর ডিজাইন করা যায় । আমার একটি অ্যাপের আপাতত ডিজাইন এটি - এর চেয়েও আরো সুন্দর ডিজাইন করা যায় । CardView  সাধারনত GridLayout এর সহিত ইউজ করলে ভালোভাবে বুঝা যাবে তাই CardView এর ব্যাবহার দেখাতে আমরা GridLayout ব্যাবহার করবো। প্রথমেই আমাদের অ্যাপের ভিতর CardView ব্যাবহার করার জন্য এর লাইব্রেরী এড করে নিতে হবে । এজন্য  build.gradle(Module:app)  এর ভিতরে চলে আসুন । বাই ডিফল্ট থাকা appcompat লাইব্রেরী টা copy-paste করে appcompat এর বদলে cardview লিখে  sync করে নিন । উপরে দেখবেন Sync Now নামে অপশন দেখাবে সেটাতে ক্লিক করলেই  sync হবে । এবার লেআউট ডিজাইন করা যাক । activity_main.xml - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare

expandable listview

ছবি
এই পর্বে আমরা দেখবো কিভাবে expandable listview তৈরি করা যায় । expandable listview হলো যখন কোন লিস্টভিউ এর কোন আইটেম এ ক্লিক করলে সেটি কিছু ডাটা দেখাবে কিংবা আরেকটি লিস্ট দেখাবে । এখানে আমরা একটি ডেমো প্রোজেক্ট দেখতে পাচ্ছি , চলুন একরকম একটি প্রোজেক্ট তৈরি করা যাক 😊 এখানে দেশের নামগুলোকে আমি প্যারেন্ট ডাটা ধরলাম , দেশ সম্পর্কে খানিক বিবরন কে চাইল্ড ডাটা । তো প্যারেন্ট ডাটা এবং চাইল্ড ডাটার জন্য আলাদা আলাদা লিস্ট তৈরি করতে হবে । তাদের আইটেম গুলোর জন্যও আমরা নিজেদের ইচ্ছামত লেআউট তৈরি করে দিবো । নতুন একটি প্রোজেক্ট খুললাম । এবার activity-main.xml এ expandable listview এর ভিউ তৈরি করবো । activity-main.xml - <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

backButton

এই পর্বে আমরা দেখবো কিভাবে অ্যাপের ভিতরে ব্যাক বাটন ইউজ করতে পারি । তো চলুন শুরু করা যাক । activity_main.xml - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" tools:context="com.example.user.learnandroid.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go Ahead" android:textAllCaps="false" android:textSize="25sp" android:padding="10dp" android:onClick="GoAhead"/> </LinearLayout> শুধুমাত

learn from Youtube

screenOrientation থাকে Manifest এর Activity ট্যাগের ভিতরে Custome Toast = Toast toast= Toast.makeText(this, "LogIn Button "+count+" times clicked", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER,2,0); toast.show(); Log ক্লাসের মাধ্যমে আমরা Logcat এ যেকোন আউটপুট দেখতে পারি । এখানে key-value আকারে ডাঁটা পাঠাতে হয় । ভিউ কম্পোনেন্ট এর কোডগুলো try-catch এর ভিতরে করা ভালো । LinearLayout এ  মাঝে লেআউট নিতে রুটে গ্রাভিটি সেন্টার দিতে হবে । CheckBox দিয়ে কাজ করার সময় StringBuilder এর মাধ্যমে ভ্যালু এড করা যায় । RadioButton - package com.example.user.learnfromyoutube; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import and

shareopton

ছবি
প্রতি অ্যাপেই অ্যাপটি শেয়ার করার মত অপশন থাকে । আজ আমরা শিখবো কিভাবে শেয়ার অপশন ইউজ করা যায় ।  শেয়ার অপশন টি চাইলে আপনি বাটনের মাধ্যমে ইউজ করতে পারেন আবার ইচ্ছা করলে একশন বার এ ইউজ করতে পারেন । অধিকাংশ অ্যাপেই একশন বার এ ইউজ করা হয় । আমরাও এই পর্বে দেখবো কিভাবে একশন বার এ শেয়ার অপশন ইউজ করা যায় । আমরা আগেই শিখে আসছি একশন বার এ ইউজার কে কোন অপশন দেখানোর জন্য মেন্যু অপশন ইউজ করার মাধ্যমে দেখাতে হয় । তো শেয়ার অপশন টি দেখানোর জন্য মেন্যু ডিরেক্টরি তৈরি করে শেয়ার নামে একটি মেন্যু আইটেম খুললাম । menu_item.xml - <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/Share" android:icon="@drawable/share" android:title="Share" app:showAsAction="always"></item> </menu> MainActivity.java - onCreate ম্যাথডের বাইরে onCr

radient background color

এই পর্বে আমরা দেখবো কিভাবে অ্যাপের কোন ভিউতে ব্যাকগ্রাউন্ড হিসেবে একের অধিক কালার ইউজ করতে পারি । এজন্য drawable এ রাইট ক্লিক করে  New -> Drawable resource file খুলুন । আমি নাম দিলাম   gradient_color gradient_color.xml - <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:startColor="@color/colorAccent" android:centerColor="@android:color/holo_orange_light" android:endColor="@color/colorPrimary" android:angle="90"></gradient> </shape> প্রথমত আপনাকে type দিতে হবে , মোট ৩ টি টাইপ আছে - linear,sweep, radial । বাকি দুইটা আপনারা প্র্যাকটিস করে দেখবেন কিভাবে ডিজাইন হয় । এরপর মোট ৩ টি ভাগে ভাগ করে কালার করতে পারবেন পুরো লেআউট কে । সেগুলো startColor, centerColor, endColor এর ভিতর সেই কালারগুলো দিয়ে দিলাম । এবং অবশেষে কত ডিগ্রি angle এ

SearchView in Action

বেশীরভাগ অ্যাপেই সার্চভিউ একশন বার এ ইউজ করা হয় । সার্চভিউ কিভাবে ইউজ করবো তা গত পর্বেই দেখানো হইছে আবার কিভাবে মেন্যু ইউজ করতে হয় তাও  Options Menu  এই পর্বে দেখানো হইছে ।  আমরা এই পর্বে দেখবো কিভাবে এই দুইয়ের সংমিশ্রনে একশন বার এ সার্চভিউ ইউজ করতে পারি ।  গত পর্বে অ্যাপ থিম হিসেবে আমরা NoActionBar ব্যাবহার করেছিলাম এবার তাই থিম চেঞ্জ করে DarkActionBar দিয়ে দিলাম । তো এজন্য একটি লিস্টভিউ বানিয়ে নিন এবং তাতে কিছু ডাটা এড করে নিন । গত পর্বেও দেয়া আছে । আমরা আগেই শিখে আসছি মেন্যু তৈরি করতে menu নামে নতুন ডিরেক্টরি ফাইল খুলতে হয় । menu ফাইলে menu resource file খুললাম , নাম দিলাম menu_item menu_item.xml - <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menuSearch" android:title="Search" app:actionViewClass="android.widget.SearchView"

searchView

ছবি
এই পর্বে আমরা দেখবো কিভাবে SearchView নিয়ে কাজ করতে হয় ।  লিস্টভিউ এর সাহায্যে আমরা সার্চভিউ  তৈরি করবো । তো চলুন শুরু করা যাক । প্রথমেই লেআউট ডিজাইনটা করে ফেলি । লেআউট এ একটি সার্চভিউ ও আরেকটি লিস্টভিউ রাখবো । activity_main.xml - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.user.splashscreen.MainActivity"> <SearchView android:id="@+id/search" android:layout_width="match_parent" android:layout_height="wrap_content" android:queryHint="Find Your Friends"></SearchView&

Splash Screen -

ছবি
এই পর্বে আমরা দেখবো কিভাবে Splash Screen তৈরি করতে হয় । Splash Screen হলো কোন অ্যাপ ওপেন করার সময় দেখবেন ২-৩ সেকেন্ড এর জন্য ওয়েলকাম স্ক্রিন টাইপের একটি স্ক্রিন ওপেন হয়ে আবার চলে যায় । যেমন - এখান একটি ইমেজ ও একটি টেক্স দেয়া আছে । তো চলুন এরকম একটি Splash Screen বানানো যাক । Splash Screen ইউজ করার সময় ActionBar ও TitleBar হাইড করে রাখাই সুন্দর দেখায়, যদিও উপরের ছবিতে টাইটেল বার তারা হাইড করে নাই।  নতুন একটি প্রোজেক্ট খুললাম । নতুন আরো একটি এক্টিভিটি ফাইল খুলতে হবে । নাম দিলাম - splashActivity । activity_splash.xml - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:background="@

Full Screen Activity

ছবি
আমরা যখন কোন অ্যাপ ওপেন করি তখন সেটা টাইটেল'বার ও অ্যাকশন'বার এর ডিফল্ট ডিজাইন সহ ওপেন হয় । আমরা যদি আমাদের অ্যাপের ভিতর এই বার দুইটি  ইউজার থেকে হাইড করতে চাই কিংবা স্টাইল চেঞ্জ কুরতে চাই, তাহলে সেটা আমরা কিভাবে করতে পারি তাই দেখবো এই পর্বে 😊 প্রথমেই ActionBar এর স্টাইল পরিবর্তন করার জন্য styles.xml এ চলে যান । style এর ভিতর এতদিন আমরা <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> এই স্টাইল টি ব্যাবহার করেছি । এখন কোন একটি অপশন কাটার পর(এখানে আমি DarkActionBar কেটে দিয়েছি ) Ctrl+space চাপলেই দেখবেন সাজেশন দেখাবে। আমরা আপাতত NoActionBar টা নিয়ে কাজ করবো । মানে কোন একশন বার দেখাবে নাহ । এবার টাইটেল বার মুছার জন্য যে এক্টিভিটি ক্লাসে দেখানোর সময় টাইটেল মুছতে চান সেই ক্লাসে গিয়ে দুই লাইনের একটি কোড লিখে দিতে হবে  setContentView এর আগে । @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);

gridview

ছবি
আজকের পর্বে আমরা দেখবো কিভাবে GridView নিয়ে কাজ করতে হয় । GridView দেখতে লিস্টভিউ এর মত কিন্তু একটু ডায়নামিক । পাশপাশি এবং উপর নিচ ২ ভাবেই সেট হয়ে থাকে । যেমন আমাদের ফটো গ্যালারি - এখন আমরা যদি এমন একটি লিস্টভিউ তৈরি করতে চাই সেক্ষেত্রে GridView ইউজ করতে হবে । তো চলুন শুরু করা যাক । প্রথমেই আমরা লেআউট ডিজাইন টা করে ফেলি । activity_main.xml  - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.user.gridview.MainActivity"> <GridView android:id="@+id/gridView" android:layout_width="match_parent" android:layout_height="match_parent" a

zoom

এই পর্বে আমরা দেখবো কিভাবে Zoom নিয়ে কাজ করতে পারি । প্রথমে ডেমো হিসেবে একটি ImageView নিয়ে সেটিকে আমরা Zoom In/Outকরে দেখবো ।  এজন্য আমরা একটি লাইব্রেরীর সাপোর্ট নিবো । নতুন একটি প্রোজেক্ট খুললাম । এবার - build.gradle (Module:app)  এর  dependencies { এর ভিতরে } implementation 'com.github.chrisbanes:PhotoView:2.1.3' এরপর  build.gradle (Project : Your project Name) এ গিয়ে  allprojects এর repositories {এর ভিতরে} maven { url "https://jitpack.io" } এই লাইন দুইটি এড করে নিন । এবার activity_main.xml এ - <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padd