परिचय
एंड्रॉइड में डायनामिक व्यू बनाते समय (XML के बजाय कोड में), अक्सर हमें व्यू की मापी गई चौड़ाई और ऊंचाई जानने की आवश्यकता होती है। यह लेख `getMeasuredWidth()` और `getMeasuredHeight()` का उपयोग करके इसे प्राप्त करने का तरीका दिखाता है।
मुख्य चरण
- माप निर्दिष्ट करें: `view.measure(0, 0)` कॉल करके व्यू को मापने के लिए कहें।
- आयाम प्राप्त करें: `getMeasuredWidth()` चौड़ाई और `getMeasuredHeight()` ऊंचाई देता है।
पूर्ण उदाहरण
चरण 1: लेआउट (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/rootview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
</LinearLayout>चरण 2: MainActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView msg = new TextView(this);
msg.setText("sample text for checking dimensions");
msg.setPadding(10, 10, 10, 10);
msg.measure(0, 0); // महत्वपूर्ण: माप ट्रिगर करें
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(5, 15, 0, 0);
msg.setLayoutParams(params);
msg.setGravity(Gravity.CENTER);
LinearLayout layout = findViewById(R.id.rootview);
layout.addView(msg);
int width = msg.getMeasuredWidth();
int height = msg.getMeasuredHeight();
Toast.makeText(this, "width " + width + " height " + height, Toast.LENGTH_LONG).show();
}
}चरण 3: AndroidManifest.xml
मानक मैनिफेस्ट, कोई विशेष अनुमति आवश्यक नहीं।
महत्वपूर्ण नोट्स
- `measure(0, 0)` का अर्थ है "कोई माता-पिता प्रतिबंध नहीं, अपनी इच्छानुसार आकार लें"।
- माप के बाद ही `getMeasuredWidth/Height` कॉल करें।
- यदि व्यू पहले से लेआउट में है, तो `onLayout` या `onWindowFocusChanged` में आयाम प्राप्त करें।
ऊपर दिए गए कोड को चलाने पर एक टोस्ट में TextView की चौड़ाई और ऊंचाई प्रदर्शित होगी।