Android 获得屏幕高度宽度的实现方法

介绍

在Android开发中,有时候我们需要获取设备屏幕的高度和宽度,以便进行屏幕适配或者其他一些操作。本文将介绍如何在Android中获取屏幕的高度和宽度。

整体流程

下面的表格展示了获取屏幕高度和宽度的整体流程。

步骤 操作
1 获取屏幕的DisplayMetrics对象
2 通过DisplayMetrics对象获取屏幕的高度和宽度

接下来,我们将逐步介绍每一步需要做什么,并给出相应的代码示例。

获取屏幕的DisplayMetrics对象

首先,我们需要获取屏幕的DisplayMetrics对象。DisplayMetrics是Android提供的一个记录设备屏幕信息的类,我们可以从中获取屏幕的高度和宽度。

// 获取屏幕的DisplayMetrics对象
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

上述代码中,我们通过getWindowManager().getDefaultDisplay().getMetrics(displayMetrics)的方式获取到了屏幕的DisplayMetrics对象。其中,getWindowManager()用于获取WindowManager对象,getDefaultDisplay()用于获取默认的Display对象,getMetrics(displayMetrics)用于将屏幕信息存储到DisplayMetrics对象中。

获取屏幕的高度和宽度

获取到DisplayMetrics对象后,我们可以从中获取屏幕的高度和宽度。

// 获取屏幕的高度和宽度
int screenHeight = displayMetrics.heightPixels;
int screenWidth = displayMetrics.widthPixels;

上述代码中,我们通过displayMetrics.heightPixels获取到屏幕的高度,displayMetrics.widthPixels获取到屏幕的宽度。

完整示例代码

下面是一个完整的示例代码,演示如何获得屏幕高度和宽度。

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;

public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 获取屏幕的DisplayMetrics对象
        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        
        // 获取屏幕的高度和宽度
        int screenHeight = displayMetrics.heightPixels;
        int screenWidth = displayMetrics.widthPixels;
        
        // 输出屏幕的高度和宽度
        System.out.println("屏幕高度:" + screenHeight + "px");
        System.out.println("屏幕宽度:" + screenWidth + "px");
    }
}

类图

下面是一个简单的类图,展示了MainActivity类和DisplayMetrics类之间的关系。

classDiagram
    MainActivity --|> AppCompatActivity
    DisplayMetrics --|> Object

总结

通过以上步骤,我们可以轻松地在Android中获得屏幕的高度和宽度。在实际开发中,我们可以根据这些信息进行屏幕适配、计算控件的大小和位置等操作。希望本文能帮助你理解并掌握如何获取屏幕的高度和宽度。