কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি স্ক্রিন অরিয়েন্টেশন লক করার পদ্ধতি

setRequestedOrientation() ব্যবহার করে স্ক্রিন অরিয়েন্টেশন ফিক্স করা

অ্যান্ড্রয়েড অ্যাপে স্ক্রিন অরিয়েন্টেশন (পোর্ট্রেট/ল্যান্ডস্কেপ) প্রোগ্রাম্যাটিক্যালি লক করার জন্য `setRequestedOrientation()` মেথড এবং `ActivityInfo` ক্লাস ব্যবহার করা হয়। এটি নির্দিষ্ট এক্টিভিটির জন্য অরিয়েন্টেশন বাধя করে রাখে।

ধাপ ১: প্রজেক্ট তৈরি করুন

স্ট্যান্ডার্ড অ্যান্ড্রয়েড প্রজেক্ট।

ধাপ ২: সিম্পল লেআউট

res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Screen Orientation Lock"
        android:textSize="24sp"
        android:textStyle="bold" />
</RelativeLayout>

ধাপ ৩: অরিয়েন্টেশন লক লজিক

src/MainActivity.java - বর্তমান অরিয়েন্টেশন অনুযায়ী লক করুন:

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // বর্তমান অরিয়েন্টেশন পাওয়া
        int currentOrientation = getResources().getConfiguration().orientation;
        
        // বর্তমান অরিয়েন্টেশনে লক করুন
        if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
}

ActivityInfo এর অরিয়েন্টেশন কনস্ট্যান্ট

কনস্ট্যান্টবর্ণনা
SCREEN_ORIENTATION_PORTRAITপোর্ট্রেট মোডে লক (লম্বা)
SCREEN_ORIENTATION_LANDSCAPEল্যান্ডস্কেপ মোডে লক (প্রস্থ)
SCREEN_ORIENTATION_SENSORসেন্সর অনুযায়ী অটো রোটেট (ডিফল্ট)
SCREEN_ORIENTATION_USERব্যবহারকারীর পছন্দ অনুযায়ী
SCREEN_ORIENTATION_FULL_SENSORসभी ৪ দিক রোটেশন অনুমতি
SCREEN_ORIENTATION_LOCKEDবর্তমান অরিয়েন্টেশনে লক (API 18+)

ম্যানিফেস্টে লক করা (এক্টিভিটি লেভেল)

প্রোগ্রাম্যাটিক ছাড়া ম্যানিফেস্টে ডিক্লেয়ার করলেও হয়:

<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait">  <!-- বা landscape -->
    <intent-filter>...</intent-filter>
</activity>

সেরা অনুশীলন

  • onCreate()-এ করুন - লেআউট ইনফ্লেট হওয়ার আগে বা সাথে সাথে
  • SCREEN_ORIENTATION_LOCKED (API 18+) ব্যবহার করুন বর্তমান অরিয়েন্টেশন যেন যেনে লক করতে
  • ভিডিও প্লেয়ার, ক্যামেরা অ্যাপে ল্যান্ডস্কেপ লক করা vanlig
  • ফর্ম-ভিত্তিক এক্টিভিটিতে পোর্ট্রেট লক করা ভালো

রানটাইমে আনলক করা

// আবার অটো-রোটেশন সক্ষম করতে
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি স্ক্রিন অরিয়েন্টেশন লক করার পদ্ধতি
  1. অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি স্ক্রিন ব্রাইটনেস পরিবর্তন করার পদ্ধতি

  2. Android-এ প্রোগ্রামেটিক্যালি অ্যাপ্লিকেশন বন্ধ করা

  3. অ্যান্ড্রয়েড লক স্ক্রিনে নোটিফিকেশন লুকানো পদ্ধতি

  4. এন্ড্রয়েডের লক স্ক্রিন কাস্টোমাইজ করার পদ্ধতি