android获取屏幕的长与宽实现代码(手写)


在Android开发中,获取屏幕的长与宽可以通过`WindowManager`类中的`Display`对象来实现。以下是一个简单的示例代码,展示了如何在Android应用中手写代码来获取屏幕的长与宽:


import android.content.Context;
import android.util.DisplayMetrics;
import android.view.WindowManager;

public class ScreenUtils {

    /**
     * 获取屏幕的长与宽(单位:像素)
     *
     * @param context 上下文对象
     * @return 屏幕的长与宽,格式为"[宽度, 高度]"
     */
    public static String getScreenSize(Context context) {
        // 获取WindowManager对象
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        // 获取Display对象
        Display display = windowManager.getDefaultDisplay();
        // 创建DisplayMetrics对象来保存屏幕信息
        DisplayMetrics metrics = new DisplayMetrics();
        // 获取屏幕信息
        display.getRealMetrics(metrics);

        // 屏幕宽度(不包含导航栏等)
        int width = metrics.widthPixels;
        // 屏幕高度(不包含状态栏等)
        int height = metrics.heightPixels;

        // 返回屏幕的长与宽
        return "[" + width + ", " + height + "]";
    }
}

请注意,上述代码中的`getRealMetrics(metrics)`方法用于获取屏幕的完整尺寸,包括系统装饰(如状态栏、导航栏等)占据的部分。如果你想要获取应用可用的屏幕空间(即排除系统装饰的部分),可以使用`getMetrics(metrics)`方法代替。

此外,返回的字符串格式是`"[宽度, 高度]"`,这是一种简单的方式来表示两个值。你可以根据实际需求调整这个格式。

要调用这个方法,你需要在你的Activity或Fragment中传入`Context`对象,例如:


String screenSize = ScreenUtils.getScreenSize(this); // 在Activity中
// 或者
String screenSize = ScreenUtils.getScreenSize(getApplicationContext()); // 在非Activity类中

Log.d("ScreenSize", screenSize);