获取分辨率 尺寸、样式

来源:互联网 发布:sql报表编辑器 编辑:程序博客网 时间:2024/04/30 10:27
尺寸:
px:屏幕像素
in:物理英寸
pt或pts:物理点(磅),文件信息多用磅值来进行描述,磅的尺寸大小是固定的,这样就可以保证用磅值描述的文本信息在不同的设备上显示的大小一致。
mm:物理毫米
dp或dip:相对于160-dpi(dots per inch)的屏幕的非密度制约的像素,也称“分辨率无关像素”
sp:缩放比例无关(scale-independent)的像素,多用于需要精确控制分辨率的场合,经如显示文本信息时。
样式:
<?xml version="1.0" encoding="utf-8"?>
<resource>
<style name="BaseText">
<item name="android:textSize">14sp</item>
<item name="android:textColor">#111</item>
</style>
<style name="SmallText" parent="BaseText">
<item name="android:textSize">8sp</item>
</style>
</resource>
<style name="SmallText" parent="BaseText">parent属性继承BaseText
 

一、获取分辨率

        使用getSize() 办法

[java] view plaincopy
  1. Display display = getWindowManager().getDefaultDisplay();  
  2. Point size = new Point();  
  3. display.getSize(size);  
  4. int width = size.x;  
  5. int height = size.y;  
        如果不在 Activity 内可以通过 WINDOW_SERVICE 来获取 Display 对象  
[java] view plaincopy
  1. WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);  
  2. Display display = wm.getDefaultDisplay();  

        使用DisplayMetrics 对象来获取

[java] view plaincopy
  1. DisplayMetrics dm = new DisplayMetrics();  
  2. getWindowManager().getDefaultDisplay().getMetrics(dm);  
  3. int width = dm.widthPixels;  
  4. int height = dm.heightPixels;  

二、虚拟按键的情况下获取物理分辨率       如果是4.0以上的系统,而且屏幕是带有虚拟按键的上面的代码获取的屏幕分辨率是除去虚拟按键以外的,在有虚拟按键情况下比如分辨率是:800×480 ,上面代码获取的是:480×728。那在带有虚拟按键的情况下如何获取真正的分辨率,可以使用display.getRealSize()  
[java] view plaincopy
  1. Display display = getWindowManager().getDefaultDisplay();  
  2. Point outSize = new Point();  
  3. display.getRealSize(outSize);  
  4. int width = outSize.x;  
  5. int height = outSize.y;  
 
原创粉丝点击