রিসোর্স কোয়ালিফায়ার ব্যবহার করে অরিয়েন্টেশন-স্পেসিফিক লেআউট
অ্যান্ড্রয়েডে res/layout-land/ ডিরেক্টরি তৈরি করে ল্যান্ডস্কেপ মোডের জন্য আলাদা লেআউট প্রদান করা যায়। সিস্টেম অটোমেটিক্যালি ডিভাইসের অরিয়েন্টেশন অনুযায়ী সঠিক লেআউট বেছে নেয়।
ধাপ ১: প্রজেক্ট তৈরি করুন
সাধারণ প্রজেক্ট সেটআপ।
ধাপ ২: পোর্ট্রেট লেআউট (ডিফল্ট)
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:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f2f6f4"
android:padding="10dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button"
android:layout_centerInParent="true"
android:layout_marginTop="16sp"
android:text="Portrait Mode"
android:textSize="24sp"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Show Orientation mode" />
</RelativeLayout>
ধাপ ৩: ল্যান্ডস্কেপ লেআউট তৈরি করুন
- Project view-এ
resফোল্ডারে রাইট-ক্লিক → New → Android Resource Directory - Resource type: layout
- Qualifiers: Orientation → Landscape
- এটি
res/layout-land/ফোল্ডার তৈরি করবে - সেখানে
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:id="@+id/tvLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginStart="64dp"
android:layout_toEndOf="@id/button"
android:text="Landscape Mode"
android:textSize="24sp"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="128sp"
android:text="Show Orientation mode" />
</RelativeLayout>
ধাপ ৪: কোটলিনে অরিয়েন্টেশন ডিটেকশন
src/MainActivity.kt:
import android.content.res.Configuration
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
lateinit var textView: TextView
lateinit var button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
textView = findViewById(R.id.tvLayout)
button = findViewById(R.id.button)
button.setOnClickListener {
val orientation = resources.configuration.orientation
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this@MainActivity, "We are in portrait mode", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this@MainActivity, "We are in Landscape mode", Toast.LENGTH_SHORT).show()
}
}
}
}
অন্যান্য কোয়ালিফায়ার
| কোয়ালিফায়ার | ব্যবহার |
|---|---|
layout-sw600dp | 7-ইঞ্চি ট্যাবলেট+ |
layout-xlarge | বড় স্ক্রিন ডিভাইস |
layout-night | ডার্ক থিম |
layout-hdpi | উচ্চ ঘনত্ব স্ক্রিন |