Saturday, December 1, 2018

Android এর স্ক্রিন ওরিয়েন্টেশন কিভাবে করবো ? ( Part -6 )


      Android Screen Orientation Example

---------------------------------------------------------------

 screen orientation আমাদের activity element এর একটা attribute । এর সাহায্যে ,  আমরা screen কিভাবে  orientation করাবো ?সেটা ঠিক করা হয় !! ধরো , আমরা একটা এক্টিভিটি ক্রিয়েট করলাম , এখন যখন অ্যাপ চালানোর সময় সেই এক্টিভিটি আসবে , তখন যেনো অটোমেটিক স্ক্রিন রোটেট হয়ে যায় , বা আমরা ফোনের স্ক্রিন রোটেট করলেও যেনো আমাদের এক্টিভিটি'র স্ক্রিন রোটেট না হয় , বা ফোনের সেন্সর অনুযায়ী স্ক্রিন রোটেট হয় !! এ ধরনের কাজ করতে চাইলে , আমাদের Manifest ফাইলে screen orientation এর কিছু attribute ইউজ করতে হয় ।। নীচে কিছু attribute দেখে নেই !! 

 

                                 portrait

এই ক্ষেত্রে , তুমি যতোই ট্রাই করো না কেনো , এই attributeএর ইউজের ফলে , তুমি তোমার activity এর স্ক্রিন'কে রোটেট করতে পারবে না , এমনকি তোমার স্ক্রিন ওরিয়েন্টেশন চালু থাকলেও , তোমার এক্টিভিটি স্ক্রিন রোটেট করতে দিবে না । 

                                landscape 

এই ক্ষেত্রে , তোমার এক্টিভিটি'র স্ক্রিন অটোমেটিক রোটেট থাকবে , সেটা তোমার সেন্সর ইউজ করুক আর নাই করুক , এই এট্রিবিউট এর ফলে -তোমার স্ক্রিন অটোমেটিক রোটেট হয়ে যাবে ।। 

                              
                                 sensor

এই ক্ষেত্রে , এটা তোমার স্ক্রিন ওরিএন্টেড হলেই একমাত্র ওরিয়েন্টেড হবে , তাছাড়া নয় - নিজে থেকে এটা কখনো ওরিয়েন্টেড হবে না , যতক্ষন না স্ক্রিন ওরিয়েন্টেড না হয় । ফোনের স্ক্রিন ওরিয়েন্টেশনের উপর এটা নির্ভর করে না । 

                               
                               unspecified

এটা তোমার ডিফল্ট এট্রিবিউট , এটা ব্যবহারের ফলে , সিস্টেম অটমেটিক চুজ করবে , ওরিয়েন্টেশন করবে নাকি করবে না !!  

আজকে এই কয়েকটা ওরিয়েন্টেশন নিয়েই আলোচনা থাকলো , চলো -- একটা অ্যাপ এর মাধ্যমে এর সত্যিকারের ব্যবহার দেখে নেই ।। 

এখানে , আমরা উদাহরণে আমরা দুইটা এক্টিভিটি বানাবো , দুইটা ভিন্ন এট্রিবিউট এর জন্য ,প্রথমটার নাম হবে (MainActivity) এটা portrait এর জন্য , এবং দ্বিতীয়টার নাম হবে (SecondActivity) এটা landscape এর জন্য । আর হ্যা , আলাদা আলাদা এক্টিভিটি খোলার জন্য আলাদা আলাদা layout file অবশ্যই থাকবে , যা নীচে দেয়া আছে সবকিছু ।


activity_main.xml

File: activity_main.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="example.javatpoint.com.screenorientation.MainActivity">  
  8.   
  9.   
  10.     <Button  
  11.         android:id="@+id/button1"  
  12.         android:layout_width="wrap_content"  
  13.         android:layout_height="wrap_content"  
  14.         android:layout_marginBottom="8dp"  
  15.         android:layout_marginTop="112dp"  
  16.         android:onClick="onClick"  
  17.         android:text="Launch next activity"  
  18.         app:layout_constraintBottom_toBottomOf="parent"  
  19.         app:layout_constraintEnd_toEndOf="parent"  
  20.         app:layout_constraintHorizontal_bias="0.612"  
  21.         app:layout_constraintStart_toStartOf="parent"  
  22.         app:layout_constraintTop_toBottomOf="@+id/editText1"  
  23.         app:layout_constraintVertical_bias="0.613" />  
  24.   
  25.     <TextView  
  26.         android:id="@+id/editText1"  
  27.         android:layout_width="wrap_content"  
  28.         android:layout_height="wrap_content"  
  29.         android:layout_centerHorizontal="true"  
  30.         android:layout_marginEnd="8dp"  
  31.         android:layout_marginStart="8dp"  
  32.         android:layout_marginTop="124dp"  
  33.         android:ems="10"  
  34.         android:textSize="22dp"  
  35.         android:text="This activity is portrait orientation"  
  36.         app:layout_constraintEnd_toEndOf="parent"  
  37.         app:layout_constraintHorizontal_bias="0.502"  
  38.         app:layout_constraintStart_toStartOf="parent"  
  39.         app:layout_constraintTop_toTopOf="parent" />  
  40. </android.support.constraint.ConstraintLayout>  

Activity class

File: MainActivity.java
  1. package example.javatpoint.com.screenorientation;  
  2.   
  3. import android.content.Intent;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8.   
  9. public class MainActivity extends AppCompatActivity {  
  10.   
  11.     Button button1;  
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.   
  17.         button1=(Button)findViewById(R.id.button1);  
  18.     }  
  19.     public void onClick(View v) {  
  20.         Intent intent = new Intent(MainActivity.this,SecondActivity.class);  
  21.         startActivity(intent);  
  22.     }  
  23. }  

activity_second.xml

File: activity_second.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="example.javatpoint.com.screenorientation.SecondActivity">  
  8.   
  9.     <TextView  
  10.         android:id="@+id/textView"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.         android:layout_marginEnd="8dp"  
  14.         android:layout_marginStart="8dp"  
  15.         android:layout_marginTop="180dp"  
  16.         android:text="this is landscape orientation"  
  17.         android:textSize="22dp"  
  18.         app:layout_constraintEnd_toEndOf="parent"  
  19.         app:layout_constraintHorizontal_bias="0.502"  
  20.         app:layout_constraintStart_toStartOf="parent"  
  21.         app:layout_constraintTop_toTopOf="parent" />  
  22. </android.support.constraint.ConstraintLayout>  

SecondActivity class

File: SecondActivity.java
  1. package example.javatpoint.com.screenorientation;  
  2.   
  3. import android.support.v7.app.AppCompatActivity;  
  4. import android.os.Bundle;  
  5.   
  6. public class SecondActivity extends AppCompatActivity {  
  7.   
  8.     @Override  
  9.     protected void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.activity_second);  
  12.   
  13.     }  
  14. }  

AndroidManifest.xml

 এখন , এখানে আমরা আমাদের ম্যানিফেস্ট ফাইলে দুই এক্টিভিটি'তে এট্রিবিউট দুটি ইউজ করবো । । প্রথমটায় portrait আর দ্বিতীয়টায় landscape এট্রিবিউট ।

File: AndroidManifest.xml
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="example.javatpoint.com.screenorientation">  
  4.   
  5.     <application  
  6.         android:allowBackup="true"  
  7.         android:icon="@mipmap/ic_launcher"  
  8.         android:label="@string/app_name"  
  9.         android:roundIcon="@mipmap/ic_launcher_round"  
  10.         android:supportsRtl="true"  
  11.         android:theme="@style/AppTheme">  
  12.         <activity  
  13.             android:name="example.javatpoint.com.screenorientation.MainActivity"  
  14.             android:screenOrientation="portrait">  
  15.             <intent-filter>  
  16.                 <action android:name="android.intent.action.MAIN" />  
  17.   
  18.                 <category android:name="android.intent.category.LAUNCHER" />  
  19.             </intent-filter>  
  20.         </activity>  
  21.         <activity android:name=".SecondActivity"  
  22.             android:screenOrientation="landscape">  
  23.         </activity>  
  24.     </application>  
  25.   
  26. </manifest> 


এখন আমরা দুইটা আউটপুট দেখলেই , এই দুইটা এটড়িবিউট ইউজের ফলে স্ক্রিন দেখবো , আর বাকি দুইটা নিজেরা ট্রাই করে দেখে নাও , ঠিক ঠিক হচ্ছে নাকি ??     






আশা করি , কিভাবে এক্টিভিটির স্ক্রিন রোটেশন করবো ? বিষয়গুলি পরিষ্কার হয়ে গেলো । আজ এইটুকুই থাক !!! 

Feel Free To Comment .......

If all of audience can't inspire me , I will not be able to continue this !!











 

No comments:

Post a Comment