dip转pix

dip转pix  

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

pix = dm.density * dip


int widthPixels= dm.widthPixels;
int heightPixels= dm.heightPixels;
float density = dm.density;
int screenWidth = widthPixels * density ;
int screenHeight = heightPixels * density ;

在320*480 的phone 上的 到的 widthPixels 值是320, heightPixels  值是480, density 的值是1.0。

在480*800 的phone 上的到的idthPixels 值是320, heightPixels  值是533, density 的值是1.5。



getWindowManager()。有些网友说书写getWindowManager()后eclipse会报错,说没有getWindowManager()这个方法,这是什么原因呢?因为getWindowManager()这个方法是在类Activity中的,如果你自己编写的类不是继承于类Activity,那么必然在这个类中书写代码就不能用到getWindowManager()这个方法。所以当你自己编写的类不是继承于类Activity,那么就只能应用下面这种方法获取手机屏幕的大小。
DisplayMetrics dm2 = getResources().getDisplayMetrics();


注解:在写代码的时候我们尽量使用dip,而不使用pix,因为对分辨率不同的屏幕来说,160dip永远是屏幕宽的一半,而pix就不行。当然涉及到Y的时候
而可以使用dip,因为差距不会太大,当然使用代码获取像素后在设计长宽是更好的办法,首先获取layout,然后设置layout的属性。

你可能感兴趣的:(eclipse,layout,手机)