Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách xác định kích thước View Android tại runtime

Giới thiệu

Bài viết này minh họa cách lấy kích thước (chiều rộng, chiều cao) của một View Android tại thời điểm chạy (runtime).

Các bước thực hiện

Bước 1: Tạo dự án mới

Mở Android Studio, chọn File → New Project và điền đầy đủ thông tin để tạo dự án mới.

Bước 2: Thiết kế giao diện (res/layout/activity_main.xml)

<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"
    android:padding="8dp"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:layout_gravity="center"
        android:layout_margin="20sp"
        android:src="@drawable/image" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="20sp"
        android:textSize="16sp"
        android:textStyle="bold"
        android:layout_below="@id/imageView" />

</RelativeLayout>

Bước 3: Chuẩn bị hình ảnh

Sao chép một file hình ảnh (.png/.jpg/.jpeg) vào thư mục res/drawable.

Bước 4: Viết code xử lý (src/MainActivity.java)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = findViewById(R.id.imageView);
        imageView.getViewTreeObserver().addOnGlobalLayoutListener(new GetViewSize());
    }

    class GetViewSize implements ViewTreeObserver.OnGlobalLayoutListener {
        @Override
        public void onGlobalLayout() {
            View v = findViewById(R.id.imageView);
            String width = Integer.toString(v.getWidth());
            String height = Integer.toString(v.getHeight());
            ((TextView) findViewById(R.id.textView)).setText(String.format("Chiều rộng %s, Chiều cao: %s", width, height));
        }
    }
}

Bước 5: Cấu hình Manifest (androidManifest.xml)

<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <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>

Chạy ứng dụng

Kết nối thiết bị Android thực với máy tính. Trong Android Studio, mở file activity và nhấn biểu tượng Run trên thanh công cụ. Chọn thiết bị di động của bạn và kiểm tra màn hình hiển thị.

Cách xác định kích thước View Android tại runtime