在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);