Android中获取屏幕的宽和高

此方法不需要在onCreate方法执行完成后,可以直接将这段代码放到onCreate方法中就能获取到:

DisplayMetrics dis = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dis);

int width = displayMetrics.widthPixels;

int height = displaymetrics.heightPixels;

本人比较喜欢这种用法,如有更好更有效的方法,希望指出,谢谢

Android中,获取屏幕有多种方法,以下是具体介绍: ### 使用`WindowManager`和`getDefaultDisplay().getWidth()`、`getDefaultDisplay().getHeight()` ```java WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight(); ``` 或者 ```java WindowManager wm = this.getWindowManager(); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight(); ``` 不过需要注意,`getWidth()`和`getHeight()`方法在API级别30中已弃用 [^1]。 ### 使用`WindowManager`和`DisplayMetrics` ```java // 获取屏幕 public static int getScreenWidth(Context context){ WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.widthPixels; } ``` 另一种类似写法: ```java DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); int DEVICE_WIDTH = dm.widthPixels; int DEVICE_HEIGHT = dm.heightPixels; ``` 这种方法通过`DisplayMetrics`来获取屏幕的像素度和度 [^2][^5]。 ### 使用`getResources().getDisplayMetrics()` ```java DisplayMetrics dm = this.getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; ``` 此方法直接从资源中获取`DisplayMetrics`对象来获取屏幕 [^3]。 ### 通过`getWindowManager().getDefaultDisplay()`并结合日志输出 ```java Display display = getWindowManager().getDefaultDisplay(); Log.i("view" , "height:" + display.getHeight()); Log.i("view" , "width:" + display.getWidth()); DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); Log.i("view" , "height" + displayMetrics.heightPixels); Log.i("view" , "width" + displayMetrics.widthPixels); ``` 这种方式不仅获取屏幕,还通过日志进行了输出,方便调试查看 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值