怎样获取Android手机屏幕的大小

怎样获取Android手机屏幕的大小,第1张

有两种方式:(获取到的大小准确度与手机的类型有关,google手机你还需要加上底部栏)

1

WindowManager wm = (WindowManager) getContext()

getSystemService(ContextWINDOW_SERVICE);

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

2

WindowManager wm = thisgetWindowManager();

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

xhdpi和分辨率是没有直接的对应关系,他对应得是屏幕的dpi,值是320

ldpi 120dpi

mdpi 160dpi

hdpi 240dpi

xhdpi 320dpi

通关下面的方法可以获取当前设备屏幕的dpi的值

public static int getDisplayDensity() {

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

return metricdensityDpi;

}

android 取得屏幕物理宽高的方法为:

1、在一个Activity的onCreate方法中,写入如下代码:

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; // 屏幕宽度(像素

int height = metricheightPixels; // 屏幕高度(像素)

float density = metricdensity; // 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; // 屏幕密度DPI(120 / 160 / 240)

2、但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

<supports-screens

android:smallScreens="true"

android:normalScreens="true"

android:largeScreens="true"

android:resizeable="true"

android:anyDensity="true" />

使用Activity类中的方法来获取,使用范围是在Activity的类及子类中和有传入Activity类及子类的对象参数的方法中使用

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutactivity_main);

// 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获取获取Display对象

Display display = getWindowManager()getDefaultDisplay();

// 方法一(推荐使用)使用Point来保存屏幕宽、高两个数据

Point outSize = new Point();

// 通过Display对象获取屏幕宽、高数据并保存到Point对象中

displaygetSize(outSize);

// 从Point对象中获取宽、高

int x = outSizex;

int y = outSizey;

// 通过吐司显示屏幕宽、高数据

ToastmakeText(this, "手机像素为:" + x + "x" + y, ToastLENGTH_LONG)show();

// 方法二(不推荐使用)直接通过Display对象获取屏幕宽、高数据

int width = displaygetWidth();

int height = displaygetHeight();

// 通过吐司显示屏幕宽、高数据

ToastmakeText(this, "手机像素为:" + width + "x" + height, ToastLENGTH_LONG)show();

}

}

以上就是关于怎样获取Android手机屏幕的大小全部的内容,包括:怎样获取Android手机屏幕的大小、android mdpi 对应的基准分辨率是多少、android 取得屏幕物理宽高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9524029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存