1、利用DisplayMetrics获取屏幕宽高及像素密度
时间: 2023-11-28 09:04:11 浏览: 79
可以使用以下代码利用DisplayMetrics获取屏幕宽高及像素密度:
```
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
int screenHeight = displayMetrics.heightPixels;
float density = displayMetrics.density;
```
其中,`screenWidth`和`screenHeight`分别表示屏幕的宽度和高度(单位为像素),`density`表示像素密度(单位为 dpi)。
相关问题
利用DisplayMetrics获取屏幕宽高及像素密度
可以使用以下代码利用DisplayMetrics获取屏幕宽高及像素密度:
```java
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int screenWidth = displayMetrics.widthPixels;
int screenHeight = displayMetrics.heightPixels;
float density = displayMetrics.density;
```
其中,`context`为当前上下文对象。`widthPixels`和`heightPixels`分别表示屏幕的宽度和高度,单位为像素。`density`表示像素密度,即每英寸包含的像素数。可以根据像素密度将像素转换为标准尺寸,比如dp(密度无关像素)。
android获取屏幕数据,android中使用DisplayMetrics获取屏幕参数
获取屏幕数据可以使用Android中的截屏技术,具体实现方式如下:
1. 在AndroidManifest.xml中添加权限:
```
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
```
2. 创建一个Bitmap对象,并使用SurfaceControl.screenshot()方法将屏幕截图存入Bitmap中:
```
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Bitmap screenshot = SurfaceControl.screenshot(width, height);
```
其中,DisplayMetrics类用于获取屏幕参数,如屏幕宽度、高度、密度等。
注意:由于该方法需要读取屏幕缓冲区,需要root权限才能使用。
另外,如果只是想获取屏幕参数,可以直接使用DisplayMetrics类:
```
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
float density = metrics.density;
...
```
阅读全文