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
- <?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"
- android:layout_height="match_parent"
- tools:context="example.javatpoint.com.screenorientation.MainActivity">
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="8dp"
- android:layout_marginTop="112dp"
- android:onClick="onClick"
- android:text="Launch next activity"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.612"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/editText1"
- app:layout_constraintVertical_bias="0.613" />
- <TextView
- android:id="@+id/editText1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_marginEnd="8dp"
- android:layout_marginStart="8dp"
- android:layout_marginTop="124dp"
- android:ems="10"
- android:textSize="22dp"
- android:text="This activity is portrait orientation"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.502"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </android.support.constraint.ConstraintLayout>
Activity class
File: MainActivity.java
- package example.javatpoint.com.screenorientation;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class MainActivity extends AppCompatActivity {
- Button button1;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- button1=(Button)findViewById(R.id.button1);
- }
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this,SecondActivity.class);
- startActivity(intent);
- }
- }
activity_second.xml
File: activity_second.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"
- android:layout_height="match_parent"
- tools:context="example.javatpoint.com.screenorientation.SecondActivity">
- <TextView
- android:id="@+id/textView"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="8dp"
- android:layout_marginStart="8dp"
- android:layout_marginTop="180dp"
- android:text="this is landscape orientation"
- android:textSize="22dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.502"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </android.support.constraint.ConstraintLayout>
SecondActivity class
File: SecondActivity.java
- package example.javatpoint.com.screenorientation;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- public class SecondActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_second);
- }
- }
AndroidManifest.xml
এখন , এখানে আমরা আমাদের ম্যানিফেস্ট ফাইলে দুই এক্টিভিটি'তে এট্রিবিউট দুটি ইউজ করবো । । প্রথমটায় portrait আর দ্বিতীয়টায় landscape এট্রিবিউট ।
File: AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="example.javatpoint.com.screenorientation">
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity
- android:name="example.javatpoint.com.screenorientation.MainActivity"
- android:screenOrientation="portrait">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".SecondActivity"
- android:screenOrientation="landscape">
- </activity>
- </application>
- </manifest>
এখন আমরা দুইটা আউটপুট দেখলেই , এই দুইটা এটড়িবিউট ইউজের ফলে স্ক্রিন দেখবো , আর বাকি দুইটা নিজেরা ট্রাই করে দেখে নাও , ঠিক ঠিক হচ্ছে নাকি ?? | ||||||
No comments:
Post a Comment