Android系統中,默認的單位是像素(px)。也就是說,在沒有明確說明的情況下,所有的大小設置都是以像素爲單位。
如果以像素設置大小,會導致不同分辨率下出現不同的效果。那麼,如何將應用中所有大小的單位都設置爲’dp’呢?
/**獲取當前分辨率下指定單位對應的像素大小(根據設備信息)
* px,dip,sp -> px
*
* @param unit TypedValue.COMPLEX_UNIT_DIP,TypedValue.COMPLEX_UNIT_SP
* @param value 要轉換的值
* @param context 上下文
* @return 轉換後的px值
*/
public static float dip2px(int unit,float value,Context context){
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value, instance.getResources().getDisplayMetrics());
}