Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะรับขนาดของมุมมองใน Android ได้อย่างไร?


มีหลายกรณี เราควรสร้างมุมมองไดนามิกแทนที่จะสร้างมุมมองใน XML ในสถานการณ์นั้น เราควรจะต้องได้มิติของมุมมอง นี่เป็นวิธีแก้ปัญหาง่ายๆ ในการรับมิติของมุมมองใน Android

เพื่อให้ได้ความสูงของมุมมองใด ๆ ให้ใช้รหัสต่อไปนี้

ความกว้าง int =view.getMeasuredHeight();

ในการรับความกว้างของมุมมองใด ๆ ให้ใช้รหัสต่อไปนี้

ความสูง int =view.getMeasuredWidth();

ก่อนรับความกว้างและความสูง เราควรกำหนดการวัดเริ่มต้นสำหรับมุมมองที่แสดงด้านล่าง

view.measure(0, 0);

ในมุมมองโค้ดด้านบนจะเหมือนกับ textview ,editText, button ..etc ต่อไปนี้คือตัวอย่างวิธีค้นหามิติข้อมูลการดูใน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

 

ในตัวอย่างข้างต้น เราไม่มีข้อมูลพร็อพเพอร์ตี้ใดๆ เราได้สร้างมุมมองรูท /มุมมองพาเรนต์ เราสามารถเพิ่ม child view ใน java ได้ดังแสดงด้านล่าง -

นำเข้า android.os.Bundle;นำเข้า android.support.constraint.ConstraintLayout;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.view.Gravity;นำเข้า android.widget.LinearLayout;นำเข้า android.widget.TextView นำเข้า android.widget.Toast คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { ConstraintLayout constraintLayout; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); TextView msg =TextView ใหม่ (นี่); msg.setText("ข้อความตัวอย่างสำหรับตรวจสอบการตาย"); msg.setPadding(10, 10, 10, 10); msg.measure(0, 0); LinearLayout.LayoutParams params =ใหม่ LinearLayout.LayoutParams (LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5, 15, 0, 0); msg.setLayoutParams(พารามิเตอร์); msg.setGravity(Gravity.CENTER); เลย์เอาต์ LinearLayout =(LinearLayout) findViewById (R.id.rootview); Layout.addView(msg); ความกว้าง int =msg.getMeasuredHeight(); ความสูง int =msg.getMeasuredWidth(); Toast.makeText(นี่, "ความกว้าง" + String.valueOf(ความกว้าง) + "ความสูง" + String.valueOf(ความสูง), Toast.LENGTH_LONG).show(); }}

ในตัวอย่างข้างต้น เราได้สร้างไดนามิก textview และเพิ่มคุณสมบัติ textview เช่น setText(),setPadding(),SetGravity() เราได้กำหนดพารามิเตอร์การจัดวางสำหรับการดูข้อความดังที่แสดงด้านล่าง

LinearLayout.LayoutParams params =ใหม่ LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);params.setMargins(5, 15, 0, 0);msg.setLayoutParams(4) 

ตอนนี้เราต้องผนวกมุมมองข้อความต่อท้ายมุมมองหลักดังที่แสดงด้านล่าง -

เลย์เอาต์ LinearLayout =(LinearLayout) findViewById(R.id.rootview);layout.addView(msg);

ในที่สุด เราก็ได้ใช้ getMeasuredHeight(); และ getMeasuredWidth(); เพื่อค้นหาความสูงและความกว้างของมุมมองข้อความที่แสดงด้านล่าง −

ความกว้าง int =msg.getMeasuredHeight();int height =msg.getMeasuredWidth();Toast.makeText(นี่ "ความกว้าง " + String.valueOf(ความกว้าง) + " ความสูง " + String.valueOf(ความสูง) ขนมปังปิ้ง .LENGTH_LONG).show();

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -

จะรับขนาดของมุมมองใน Android ได้อย่างไร?

ในหน้าจอด้านบน เราได้ขนาดของการดูข้อความใน Toast