এই টিউটোরিয়ালে আমরা শিখব কীভাবে 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-তে মান দিয়ে পিক্সেলে কনভার্ট করা সবচেয়ে ভালো অনুশীলন।