New Lesson

For Downloading the new lesson you have to finish  a survey.  Then We will Send you The Post : 


If you are Now in a Desktop Computer  Go to the link below : 

For Desktop User



If you are Now in an Android Mobile Device  Go to the link below : 

For Mobile User 




Online Market Place

Click These Products Below , Just See Amazon Market Place - The Big Online E-commerce Market Place in the World, And if you Plan to Earn Money by Affiliate Marketing Blog so click the Pictures below to See How the link refers to Amazon :
Baby Diapar :




Gents Shocks :





Diapar: Water Wipes:





Diapar: pampars :





Diapar : Bamboo Nature :





diapar: Mama Bear : Newborn :





diapar: Huggies :





diapar: pampars: Easyups:





boys under ware:





Mug Show Piece Mommy daddy :





More Amazing Showpiece Mugs


Here



==============================


Alexas smart plug :





Alexa : echo dot :





Alexa echo plus:





Alexa echo Show : The Latest Robot in your Home : 





Lesson: 7 -Image In ImageView and Image in WebView

আমরা প্রথমে এ্যাসেট ফোল্ডারে আরেকটি ইমেজ রাখবো :




এবার ইমেজভিউ.এক্সএমএল ফাইলটি ওপেন করে আরেকটি ইমেজভিউ সেট করবো যার আইডি নাম হবে  ইমেজভিউ২ :

<ImageView    android:id="@+id/imageView2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="8dp"    android:layout_marginEnd="8dp"    android:layout_marginLeft="8dp"    android:layout_marginRight="8dp"    android:layout_marginStart="8dp"    android:layout_marginTop="8dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintHorizontal_bias="0.28"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent"    app:layout_constraintVertical_bias="0.39"    app:srcCompat="@mipmap/ic_launcher" />




এবার ইমেজভিউ জাভা ফাইল ওপেন করে নিচের কোডটুকু অনক্রিয়েট এর বাইরে লিখুন :

public Drawable loadDrawableFromAssets(Context context, String path)
{
    InputStream stream = null;
    try    {
        stream = context.getAssets().open(path);
        return Drawable.createFromStream(stream, null);
    }
    catch (Exception ignored) {} finally    {
        try        {
            if(stream != null)
            {
                stream.close();
            }
        } catch (Exception ignored) {}
    }
    return null;
}

এবং নিচের কোডটুকু অনক্রিয়েট এর ভেতরে লিখুন :

android.widget.ImageView imageView2 = findViewById(R.id.imageView2);

imageView2.setImageDrawable(loadDrawableFromAssets(getApplicationContext(),"image24.jpg"));

নিচের মত হবে : 





এবার প্রোগ্রামটি রান করুন।


ব্যাখ্যা : আমরা প্রথমে loadDrawableFromAssets এই প্রোগ্রামটি লিখেছি অনক্রিয়েট এর বাইরে। এই প্রোগ্রামে বলা হয়েছে কিভাবে  এ্যাসেট ফোল্ডারের মধ্য থেকে একটি ইমেজকে ড্রয়েবল হিসেবে লোড করবে।
এরপর loadDrawableFromAssets  এই ফাংশনটিকে আমরা অনক্রিয়েট এর মধ্যে কল করেছি এভাবে :
imageView2.setImageDrawable(loadDrawableFromAssets(getApplicationContext(),"image24.jpg"));

সুতরাং, এখন যেখানেই আমরা ইমেজ এর নাম দিয়ে এই ফাংশনটিকে ইমেজভিউ এর জন্য কল করবো সেখানেই ইমজটি প্রদর্শিত হবে। 


=======================

=======================
ঠিক  একই ভাবে ইমেজভিউ লেআউট ফাইলে  আরেকটি ইমেজ ভিউ তৈরী করুন।  
এ্যাসেট ফোল্ডারে আরেকটি ইমেজ রাখুন। 

মনে করি, এক্সএমএল ফাইলে ইমেজভিউ আইডি imageView3

এবং, প্রজেক্ট এ্যাসেট ফোল্ডারে যে ইমেজটি রেখেছি তার নাম image25.jpg


এবার  জাভা ফাইলে আউটসাইড অনক্রিয়েট এ  নিচের ফাংশনটি লিখুন  : 

public Bitmap loadBitmapFromAssets(Context context, String path)
{
    InputStream stream = null;
    try    {
        stream = context.getAssets().open(path);
        return BitmapFactory.decodeStream(stream);
    }
    catch (Exception ignored) {} finally    {
        try        {
            if(stream != null)
            {
                stream.close();
            }
        } catch (Exception ignored) {}
    }
    return null;
}


অনক্রিয়েট এর মধ্যে ফাংশনটি কল করুন এভাবে : 

android.widget.ImageView imageView3 = findViewById(R.id.imageView3);
imageView3.setImageBitmap(loadBitmapFromAssets(getApplicationContext(),"image25.jpg"));

এবার  এ্যাপটি রান করুন। 

উপরের পদ্ধতিগুলোর মধ্যে দেখুন কোন পদ্ধতিতে আপনার ইমেজ সুন্দর ভাবে আসে। সেই পদ্ধতিটিই ব্যবহার করুন। 

*********************
*********************

পূর্ণাঙ্গ কোড : 


আপনাদের সুবিধার্থে নিচে  এক্সএমএল ফাইল এবং জাভা ফাইল পুরো কোড গুলো একসাথে দেওয়া হলো : 

imageview.xml : 
=====================


<ImageView    android:id="@+id/imageView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="8dp"    android:layout_marginEnd="8dp"    android:layout_marginLeft="8dp"    android:layout_marginRight="8dp"    android:layout_marginStart="8dp"    android:layout_marginTop="8dp"
    android:src="@drawable/ic_launcher_background"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintHorizontal_bias="0.03"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent"    app:layout_constraintVertical_bias="0.018" />

<ImageView    android:id="@+id/imageView2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="8dp"    android:layout_marginEnd="8dp"    android:layout_marginLeft="8dp"    android:layout_marginRight="8dp"    android:layout_marginStart="8dp"    android:layout_marginTop="8dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintHorizontal_bias="0.844"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent"    app:layout_constraintVertical_bias="0.056"    app:srcCompat="@mipmap/ic_launcher" />

<ImageView    android:id="@+id/imageView3"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginBottom="8dp"    android:layout_marginEnd="8dp"    android:layout_marginLeft="8dp"    android:layout_marginRight="8dp"    android:layout_marginStart="8dp"    android:layout_marginTop="8dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    app:layout_constraintTop_toTopOf="parent"    app:layout_constraintVertical_bias="0.352"    app:srcCompat="@mipmap/ic_launcher_round" />







এরপর ImageView.java  জাভা আউটসাইড অনক্রিয়েট : 

public Drawable loadDrawableFromAssets(Context context, String path)
{
    InputStream stream = null;
    try    {
        stream = context.getAssets().open(path);
        return Drawable.createFromStream(stream, null);
    }
    catch (Exception ignored) {} finally    {
        try        {
            if(stream != null)
            {
                stream.close();
            }
        } catch (Exception ignored) {}
    }
    return null;
}



public Bitmap loadBitmapFromAssets(Context context, String path)
{
    InputStream stream = null;
    try    {
        stream = context.getAssets().open(path);
        return BitmapFactory.decodeStream(stream);
    }
    catch (Exception ignored) {} finally    {
        try        {
            if(stream != null)
            {
                stream.close();
            }
        } catch (Exception ignored) {}
    }
    return null;
}



এরপর ImageView.java  জাভা   ইনসাইড অনক্রিয়েট : 

       //==========================//1//===========================//       
    android.widget.ImageView imageView = findViewById(R.id.imageView);


        try        {
            // get input stream            InputStream ims = getAssets().open("image28.jpg");
            // load image as Drawable            Drawable d = Drawable.createFromStream(ims, null);
            // set image to ImageView            imageView.setImageDrawable(d);
           // imageView2.setImageDrawable(d);            //now close the stream:            ims .close();
        }
        catch(IOException ex)
        {
            return;
        }

        //==========================//2//=============================//
        final android.widget.ImageView imageView2 = findViewById(R.id.imageView2);
        imageView2.setImageDrawable(loadDrawableFromAssets(getApplicationContext(),"image24.jpg"));




        //===============================//3//===========================//
        android.widget.ImageView imageView3 = findViewById(R.id.imageView3);
        imageView3.setImageBitmap(loadBitmapFromAssets(getApplicationContext(),"image25.jpg"));




==================
সারাংশ :
Lesson 6.1  এবং  Lesson 6.2  তে আমরা   ইমেজভিউতে ইমেজ প্রদর্শনের জন্য এক্স এম এল এর দুটি পদ্ধতি এবং   জাভার তিনটি পদ্ধতি (মোট পাচটি পদ্ধতি)  নিয়ে আলোচনা করলাম  এবং তিনটি ইমেজকে ইমেজ ভিউতে প্রদর্শন করলাম । আমাদের প্রজেক্ট এ্যাসেট ফোল্ডারের তিনটি ইমেজ নিম্নরূপ :



উপরের চিত্রের তিনটি ইমেজকে আমরা তিন ধরণের পদ্ধতিতে  উপরের পূর্ণাঙ্গ  জাভা কোডের মাধ্যমে ইমেজভিউতে প্রদর্শন করিয়েছি। মোবাইলে ছবি তিনটি নিচের মত প্রদর্শিত হবে :




সুতরাং, এই তিন ধরণের মধ্যে আপনার যে ধরণের প্রয়োজন সে অনুযায়ী কোড ব্যবহার করবেন। আর যদি শুধু এক্সএমএল এর মাধ্যমে সিস্টেম ইমেজ প্রদর্শন করতে চান তবে জাভার কলিং কোড গুলো মুছে নিবেন।

===============================
(   নোট :  তবে ইমেজ এর বিভিন্ন সুবিধা ইনষ্ট্যান্ট পাওয়ার জন্য  ইমেজভিউতে না প্রদর্শন করে ওয়েবভিউতে প্রদর্শন করলে ভালো হয়। ইমেজ জুমিং, স্লাইডিং  সহ অনেক সুবিধা পাওয়া যায়।  আমরা ওয়েবভিউ এর লেসনে এ ব্যাপারে আলোচনা করব। ) 
=============================

এই প্রজেক্ট ফাইলটি ডাউনলোড করার জন্য এ্যাডমিন এর সাথে যোগাযোগ করতে পারেন  : 


Lesson 6 - Launcher Activity, Show Image ‍and Create Asset



আমরা প্রথমে একটি Launcer Activity তৈরী করব, এরপর এই এ্যাক্টিভিটি থেকে বিভিন্ন এ্যাক্টিভিটিতে বাটন ক্লিক এর মাধ্যমে যাবো। এবং সেই এ্যাক্টিভিটিগুলোতে বিভিন্ন মেথড যুক্ত করে পর্যায়ক্রমে সেগুলোর কাজ দেখবো । প্রথমে জাভা ফোল্ডারের উপর রাইট বাটনে ক্লিক করে একটি এম্পটি এ্যাক্টিভিটি তৈরী করুন :







জাভা ফাইল নেম এবং লেআউট ফাইল নেম নিচের মত দিন এবং Launcher Activity - তে টিকমার্ক দিয়ে দিন :



এবার ফিনিশ বাটনে ক্লিক করুন।

নিচের চিত্রের মত একটি এ্যাক্টিভিটি তৈরী হবে :




আমরা পুনরায় একটি এ্যাক্টিভিটি তৈরী করব যার নাম দেব ইমেজ ভিউ :










এভাবে মোট দুটি এ্যাক্টিভিটি তৈরী করলাম।



==================


এখন আমরা ‍স্টার্ট এ্যাক্টিভিটিকে লাঞ্চার এ্যাক্টিভিটি হিসেবে তৈরী করব, এজন্য আমরা মেনিফেস্ট ফাইল ওপেন করব। এবং :


<intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


এই লেখাটুকু শুধুমাত্র স্টার্ট এ্যাক্টিভিটিতে রেখে অন্যান্য এ্যাক্টিভিটি থেকে মুছে দেবো। এই কোডটুকু যে এ্যাক্টিভিটর অধীনে থাকবে সেই এ্যাক্টিভিটিই লাঞ্চার এ্যাক্টিভিটি হয়ে যাবে, অর্থাৎ এ্যাপটি চালু হলে সর্বপ্রথম সেই এ্যাক্টিভিটি ওপেন হবে :





অন্যান্য এ্যাক্টিভিটি থেকে ইন্টেন্ট ফিল্টার লাঞ্চার মুছে ফেলে শুধুমাত্র স্টার্ট এ্যাক্টিভিটিতে রাখতে হবে । যার ফলে মেনিফেস্ট    এর চেহারা   এরকম হবে । নিচের চিত্রে  দেখুন  শুধুমাত্র স্টার্ট এ্যাক্টিভিটির জন্যই ইন্টেন্ট ফিল্টার লাঞ্চার রাখা হলো :





এখন এ্যাপটি চালু করলে স্টার্ট এ্যাক্টিভিটি সর্বপ্রথম চালু হবে।

=================

এবার start.xml ফাইলটি ওপেন করে একটি বাটন যোগ করব :






এবার StartActivity.java ফাইলটি ওপেন করে এই বাটনটিকে ইনিশিয়ালাইজ করে বাটন ক্লিক এর মাধ্যমে যাতে ইমেজ ভিউ নামের এ্যাক্টি ভিটি ওপেন হয় সেই কোড যোগ করব : 




মনে করি বাটনটির আইডি হবে বাটন টু, যেটা এক্সএমএল ফাইলে নির্ধারণ করতে হবে : 


android:id="@+id/button2"



তাহলে জাভা ফাইলে ইনিশিয়ালাইজ হবে : Button button2 = (Button)findViewById(R.id.button2);



এবার বাটন টু এর জন্য অনক্লিক লিসেনার : 


button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

// বাটন টু ক্লিক করলে যা ঘটবে তা এখানে লিখতে হবে । 

}
});



আমরা লিখলাম যে ইমেজ ভিউ ক্নাস নামে একটি এ্যাক্টিভিটি আছে সেটা ওপেন কর : 


Intent i= new Intent(StartActivity.this, ImageView.class);
startActivity(i);



সুতরাং, এখন বাটন টু এর অনক্লিক লিসেনার হবে এরকম : 


Button button2 = (Button)findViewById(R.id.button2);

button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent i= new Intent(StartActivity.this, ImageView.class);
startActivity(i);

}
});






এ্যাপটি রান করুন। বাটনে ক্লিক করলে ইমেজভিউ এ্যাক্টিভিটি ওপেন হবে।



=====================


এবার আমরা বাটন টু এর ক্লিক এর মাধ্যমে ইমেজভিউ এ্যাক্টিভিটিতে প্রবেশ করলাম।

এখানে আমরা একটি ইমেজভিউ যোগ করব । প্রথমে এই এ্যাক্টিভিটির লেআউট ফাইলটি ওপেন করে একটি ইমেজভিউ যোগ করি :





উপরের চিত্রের মত করে লিখুন :

android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"


app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.03"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.018"

app:srcCompat="@mipmap/ic_launcher" 
 />

===============

এখন আমরা দেখব যে, কয়েকটি ভাবে একটি ইমেজ ভিউতে যে কোন ইমেজ প্রদর্শন করানো যায়। দেখুন উপরের ইমেজ ভিউ এর সবার শেষের লাইনটি এরকম :


app:srcCompat="@mipmap/ic_launcher"



এর অর্থ হলো রিসোর্স এর আন্ডারে যে মিপম্যাপ নামক ফোল্ডার রয়েছে সেই ফোল্ডারে আইসি লাঞ্চার নামে একটি ইমেজ রয়েছে সেই ইমেজটি প্রদর্শন করা হোক ।





এখন   এ্যাপটি রান করে দেখুন ।



====================

====================



আবার নিচের মত করেও যে কোন ইমেজ প্রদর্শন করানো যায় :

android:src="@drawable/ic_launcher_background"



এখানে দেখুন আগের app:srcCompat এর পরিবর্তে android:src ব্যবহার করা হয়েছে। এবং পুরো লাইনটির অর্থ হচ্ছে, ড্রয়েবল ফোল্ডারের মধ্যে ic_launcher_background নামে যে চিত্রটি রয়েছে তা দেখাও। নিচের চিত্রটি লক্ষ করুন :







এ্যাপটি রান করে দেখুন ।




===============================

এতক্ষণ তো দেখলাম এ্যান্ড্রয়েড স্টুডিওতে রাখা সিস্টেম পিকচার গুলো কিভাবে দেখা যায়। কিন্তু আমরা আমাদের নিজেদের কাষ্টম ইমেজ দেখাতে চাই । তাহলে কি করতে হবে ?




এ্যান্ড্রয়েড স্টুডিও মিনিমাইজ করে রাখুন। এরপর কম্পিউটারের যেখানে আমাদের এই প্রজেক্ট ফাইলটি রাখা আছে সেই স্থানটি ওপেন করতে হবে :







আমাদের প্রজেক্টের মূল ফাইলে যেতে হবে। সেখানে মেইন নামক ফোল্ডারের অভ্যন্তরে assets নামে একটি ফোল্ডার তৈরী করতে হবে :






উপরের চিত্রে দেখুন আমাদের প্রজেক্ট এর নাম হচ্ছে মাই এ্যাপলিকেশন, এরপর সেখান থেকে মেইন নামক ফোল্ডারের মধ্যে আমরা এ্যাসেটস নামক একটি ফোল্ডার ক্রিয়েট করলাম। এখন এই এ্যাসেট নামক ফোল্ডারের মধ্যে আমরা আমাদের ইমেজ রাখবো। এখানে আমরা ইমেজ২৮ নামক একটি ইমেজ রাখলাম :


 

এবার আমরা পুনরায় এ্যান্ড্রয়েড স্টুডিওতে ফিরে আসলে দেখতে পাবো যে, এ্যাসেটস নামে নতুন একটি ফোল্ডার তৈরী হয়েছে এবং সেখানে ইমেজ২৮ নামে একটি ফাইল দেখা যাচ্ছে :





এবার এই ইমেজ২৮ ফাইলটিকে আমরা আমাদের ইমেজভিউতে প্রদর্শন করবো ।


প্রথমে এক্সএমএল ফাইলে আমরা ইমেজভিউ এর আইডি দেখে নেবো :


android:id="@+id/imageView"



এবার আমরা ইমেজভিউ এ্যাক্টিভিটি নামে জাভা ফাইলটি ওপেন করে ইমেজভিউকে ইনিলিয়ালাইজ করবো। এরপর এ্যাসেট ফোল্ডারে রাখা ইমেজ২৮ ফাইলটিকে সেই ইমেজভিউতে প্রদর্শন করবো :



এখানে প্রথমে আমরা ট্রাই / ক্যাচ ব্লকের মাধ্যমে দেখবো :



android.widget.ImageView imageView = findViewById(R.id.imageView);

try
{
// get input stream
InputStream ims = getAssets().open("image28.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
imageView.setImageDrawable(d);
//now close the stream:
ims .close();
}
catch(IOException ex)
{
return;
}




এই কোডটুকু  ইমেজভিউ জাভা ফাইলে পেষ্ট করুন :





 প্রোগ্রামটি রান করে দেখুন।


=============================




পরবর্তী লেসন : 7  




এবার  আরেকটি পদ্ধতি :


১। আমরা আরেকটি ইমেজ ফাইল এ্যাসেট ফোল্ডারে রাখব ।


২। আরেকটি ইমেজভিউ এক্সএমএল লেআউট ফাইলে তৈরী করব।


৩। এরপর ইমেজ ওপেন করার জন্য একটি প্রোগ্রাম লিখব এবং প্রোগ্রামটি ইমেজভিউ জাভা

ফাইলের আউটসাইড অনক্রিয়েটে লিখব।


৪। এরপর জাভা অনক্রিয়েটএ সেই প্রোগ্রামটিকে কল করবো।