DisplayMetrics ব্যবহার করে স্ক্রিন সাইজ পান
এই উদাহরণটি দেখায় কিভাবে ডিভাইসের স্ক্রিন প্রস্থ এবং উচ্চতা পিক্সেলে নির্ণয় করা যায়। এটি রেসপন্সিভ ডিজাইন বা কাস্টম ড্রইংয়ের জন্য গুরুত্বপূর্ণ।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: লেআউট (৪টি TextView)
<?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/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="176dp"
android:text="Width in Pixels: "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/textView2"
android:layout_marginTop="24dp"
android:text="Height in Pixels: "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView3"
android:layout_marginTop="16dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
ধাপ ৩: MainActivity.java
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView one, two;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
one = findViewById(R.id.textView2);
two = findViewById(R.id.textView4);
DisplayMetrics displayMetrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;
one.setText(String.valueOf(deviceWidth));
two.setText(String.valueOf(deviceHeight));
}
}
DisplayMetrics এর অন্যান্য উপকারী ফিল্ড
| ফিল্ড | বিবরণ |
|---|---|
| widthPixels / heightPixels | স্ক্রিনের মোট পিক্সেল |
| densityDpi | স্ক্রিন ডেনসিটি (120, 160, 240, 320, 480, 640) |
| density | ডেনসিটি ফ্যাক্টর (dp = px / density) |
| scaledDensity | ফন্ট স্কেলিং ফ্যাক্টর |
| xdpi / ydpi | ফিজিক্যাল পিক্সেল প্রতি ইঞ্চি |
আধুনিক পদ্ধতি (API 30+)
// WindowManager ডিপ্রিকেটেড, WindowMetrics ব্যবহার করুন WindowMetrics metrics = windowManager.getCurrentWindowMetrics(); int width = metrics.getBounds().width(); int height = metrics.getBounds().height();
কটআউট/ন্যাচ হ্যান্ডলিং
DisplayMetrics পুরো স্ক্রিন দেয়, স্ট্যাটাসবার/ন্যাচ অন্তর্ভুক্ত। ব্যবহারযোগ্য এলাকা পেতে WindowInsets ব্যবহার করুন।