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

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

এই টিউটোরিয়ালে আমরা শিখব কীভাবে Java কোডের মাধ্যমে LinearLayout.LayoutParams ব্যবহার করে ডাইনামিক্যালি ভিউতে মার্জিন সেট করা যায়।

প্রয়োজনীয় ধাপগুলো

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

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল তৈরি করুন

res/layout/activity_main.xml ফাইলে নিচের কোড যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/linearLayout"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" />

ধাপ ৩: মেইন এক্টিভিটিতে মার্জিন সেট করুন

src/MainActivity.java ফাইলে নিচের কোড যোগ করুন:

package app.tutorialspoint.com.sample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        LinearLayout linearLayout = findViewById(R.id.linearLayout);
        
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        );
        
        // setMargins(left, top, right, bottom) - পিক্সেল এককে
        layoutParams.setMargins(30, 20, 30, 0);
        
        Button okButton = new Button(this);
        okButton.setText("some text");
        linearLayout.addView(okButton, layoutParams);
    }
}

ধাপ ৪: ম্যানিফেস্ট কনফিগার করুন

AndroidManifest.xml ফাইল:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.sample">
    <uses-permission android:name="android.permission.VIBRATE" />
    <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=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

DP কনভার্ট করে মার্জিন সেট করা (সুপারিশ করা)

পিক্সেলের বদলে DP ব্যবহার করা ডিভাইস-ইনডিপেন্ডেন্ট UI নিশ্চিত করে:

public int dpToPx(int dp) {
    float density = getResources().getDisplayMetrics().density;
    return Math.round(dp * density);
}

// ব্যবহার:
layoutParams.setMargins(
    dpToPx(30), dpToPx(20), dpToPx(30), dpToPx(0)
);

LayoutParams-এর প্রকারভেদ

  • LinearLayout.LayoutParams - LinearLayout-এর চাইল্ডের জন্য
  • RelativeLayout.LayoutParams - RelativeLayout-এর চাইল্ডের জন্য
  • ConstraintLayout.LayoutParams - ConstraintLayout-এর চাইল্ডের জন্য
  • FrameLayout.LayoutParams - FrameLayout-এর চাইল্ডের জন্য
  • ViewGroup.MarginLayoutParams - মার্জিন সাপোর্ট করে এমন সব প্যারেন্টের বেস ক্লাস

XML-এ মার্জিন সেট করা (সাধারণ পদ্ধতি)

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp"
    android:text="XML Margin" />

সারাংশ

ডাইনামিক ভিউ তৈরি করার সময় LayoutParams অবজেক্ট তৈরি করে setMargins() কল করুন। DP-তে মান দিয়ে পিক্সেলে কনভার্ট করা সবচেয়ে ভালো অনুশীলন।

  1. অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ব্যাকগ্রাউন্ড ড্রয়েবল সেট করা

  2. অ্যান্ড্রয়েড অ্যাপে প্রোগ্রাম্যাটিক্যালি লোকেল (ভাষা) সেট করার পদ্ধতি

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

  4. অ্যান্ড্রয়েডে VPN সেট আপ করার পূর্ণ নির্দেশিকা