现在的位置: 首页 > 综合 > 正文

android 图片资源文件对应的屏幕分辨率

2013年01月23日 ⁄ 综合 ⁄ 共 957字 ⁄ 字号 评论关闭

dpi:“dot per inch”的缩写,每英寸像素数。
drawable-ldpi的dpi为120
drawable-mdpi的dpi为160
drawable-hdpi的dpi为240
drawable-xhdpi的dpi为320

另外还得知道一个‘屏幕密度’的概念,呃,这个词语是我自己杜撰的,其实就是知道android的一个规定:dpi为160的屏幕密度为1,其他照着算就行了。

获取屏幕分辨率的代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    int width1 = dm.widthPixels;
    int height1 = dm.heightPixels;
    Toast.makeText(this, width1 + "*" + height1, Toast.LENGTH_SHORT).show();   
}

下面这段代码的desity表示设备每英寸显示160个物理像素,则会

drawable-mdpi下的图片,为1.5,

取drawable-hdpi,为2,

取drawable-xhdpi,为0.75,

取drawable-ldpi,看看手机屏幕的密度吧(800*1280,应该是2),

这样就能确定到底是取的哪个目录下的图片,再进一步确定问题到底出现在哪。

DisplayMetrics metrics = null;             
metrics = new DisplayMetrics();             
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);             
float density = metrics.density;

我的手机是三星i9003,分辨率是480*800,测试过为drawable-hdpi,之前一直很苦恼为什么一个42*42的图片显示出来是72*72,原来是我把它放在drawable-mdpi下了,郁闷了半天

抱歉!评论已关闭.