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

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下了,郁闷了半天
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章