控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

android获取设备分辨率的新方法

作者:未知 出处:cnblog 2012年08月02日 阅读:

 Android手机分辨率多种多样,作为开发者,做出的软件不能只兼顾一种或几种手机,而要在尽量多的手机上达到另我们满意的现实效果。Android在设计之初,系统就被设计为一个可以在

 
多种不同分辨率的设备上运行的操作系统。对于应用程序来说,系统平台向它们提供的是一个稳定的,跨平台的运行环境,而关于如何将程序以正确的方式显示到它所运行的平台上所需要的
 
大部分技术细节,都由系统本身进行了处理,无需程序的干预。但毕竟效果有限,有时候我们还需要自己针对设备的分辨率对程序优化。
 
在做五子棋的过程中,为了使布局更具有兼容性,找了一些关于分辨率的资料,网上能找到的基本都是使用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对象。
   DisplayMetrics displayMetrics=new DisplayMetrics();    
   display.getMetrics(displayMetrics);
另外,getOrientation ()还可以获得屏幕的方向,getRefreshRate()获取屏幕刷新率等。

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统