android获取设备分辨率的新方法
2012-08-17 11:12
537 查看
Android手机分辨率多种多样,作为开发者,做出的软件不能只兼顾一种或几种手机,而要在尽量多的手机上达到另我们满意的现实效果。Android在设计之初,系统就被设计为一个可以在多种不同分辨率的设备上运行的操作系统。对于应用程序来说,系统平台向它们提供的是一个稳定的,跨平台的运行环境,而关于如何将程序以正确的方式显示到它所运行的平台上所需要的大部分技术细节,都由系统本身进行了处理,无需程序的干预。但毕竟效果有限,有时候我们还需要自己针对设备的分辨率对程序优化。
在做五子棋的过程中,为了使布局更具有兼容性,找了一些关于分辨率的资料,网上能找到的基本都是使用DisplayMetrics来获取分辨率。经过自己的测试,发现还有一种方法能获取到分辨率,那就是使用android.view包里的Display类。
下面先介绍下DisplayMetrics的相关资料。
DisplayMetrics是android.util包里的一个类,类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。
为了获取DisplayMetrics 成员,首先初始化一个对象如下:
构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager()之后,会取得现有Activity 的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”。 其实现代码如下:
下面介绍下我发现的另一种方法,那就是Display类,通过查找API可知,该类在android.view包里,描述为:Providesinformation about the display size and density。 使用方法如下:
两种方法运行结果相同: Display对象不仅可以通过调用getWidth()和getHeight()来获取屏幕分辨率,还可以通过getMetrics()方法来获取描述此屏幕尺寸和分辨率的DisplayMetrics对象。
另外,getOrientation ()还可以获得屏幕的方向,getRefreshRate()获取屏幕刷新率等。
在做五子棋的过程中,为了使布局更具有兼容性,找了一些关于分辨率的资料,网上能找到的基本都是使用DisplayMetrics来获取分辨率。经过自己的测试,发现还有一种方法能获取到分辨率,那就是使用android.view包里的Display类。
下面先介绍下DisplayMetrics的相关资料。
DisplayMetrics是android.util包里的一个类,类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。
为了获取DisplayMetrics 成员,首先初始化一个对象如下:
DisplayMetricsmetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics;
构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager()之后,会取得现有Activity 的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”。 其实现代码如下:
private TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); String string = "手机屏幕分辨率为:" + displayMetrics.widthPixels + "x" + displayMetrics.heightPixels; textView = (TextView) findViewById(R.id.textView); textView.setText(string); }
下面介绍下我发现的另一种方法,那就是Display类,通过查找API可知,该类在android.view包里,描述为:Providesinformation about the display size and density。 使用方法如下:
private TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Display display = getWindowManager().getDefaultDisplay(); String string = "手机的屏幕分辨率为:" + display.getWidth() + "x" + display.getHeight(); textView = (TextView) findViewById(R.id.textView); textView.setText(string); }
两种方法运行结果相同: Display对象不仅可以通过调用getWidth()和getHeight()来获取屏幕分辨率,还可以通过getMetrics()方法来获取描述此屏幕尺寸和分辨率的DisplayMetrics对象。
[align=left] DisplayMetrics displayMetrics= new DisplayMetrics();[/align] display.getMetrics(displayMetrics);
另外,getOrientation ()还可以获得屏幕的方向,getRefreshRate()获取屏幕刷新率等。
相关文章推荐
- Android获取设备屏幕分辨率的方法
- 不同Android版本设备正确获取屏幕分辨率的通用方法
- android获取设备分辨率的新方法
- 不同Android版本设备正确获取屏幕分辨率的通用方法
- android设备分辨率获取的一种新方法
- android获取设备分辨率的新方法
- android获取设备分辨率的新方法
- Android App开发基础篇—设备屏幕分辨率获取方法
- 不同Android版本设备正确获取屏幕分辨率的通用方法
- android获取设备屏幕大小的方法
- ***Life原创***获取任意Android设备root权限的方法,供参考
- android获取设备屏幕大小的方法
- android获取设备屏幕大小的方法
- 在Android中创建菜单项Menu以及获取手机分辨率的解决方法
- Android编程获取手机屏幕分辨率大小的方法
- android唯一设备标识、设备号、设备ID的获取方法
- Android 7.0开发获取存储设备信息的方法
- 天天记录 - Android获取屏幕尺寸,分辨率3种方法
- 同wifi环境下android设备自动获取socket服务端的ip地址和端口号的方法-UDP广播
- Android编程获取设备MAC地址的实现方法