【轉】Android中dip(dp)與px之間單位轉換


Android中dip(dp)與px之間單位轉換

dp這個單位可能對web開發的人比較陌生,因為一般都是使用px(像素)
但是,現在在開始android應用和游戲后,基本上都轉換成用dp作用為單位了,因為可以支持多種分辨率的手機.
以下是這兩個單位的概念:
px (pixels)像素 –一個像素通常被視為圖像的最小的完整采樣,這個用的比較多,特別是web開發,頁面基本都是使用像素作為單位的.
dip或dp (device independent pixels)設備獨立像素 — 這個和設備硬件有關,一般我們為了支持手機上多種分辨率,如WVGA、HVGA和QVGA,都會使用dip作為長度的單位
在Android開發我們一般都可以不需要使用px的,但是某一些控件的屬性沒有直接支持dip,像下面的代碼

android.view.ViewGroup.LayoutParams.height
android.view.ViewGroup.LayoutParams.width上面這兩個屬性的單位為像素,但是為了兼容多種分辨率的手機,我們需要最好使用dip,時候我們可以調用以下的代碼進行轉換.
int heightPx= DisplayUtil.dip2px(this, 33);
mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = heightPx;
以上代碼可以在我另一篇文章看得到.該功能是設置Tab的高度,單位是像素.以上的單位轉換是為了支持多分辨率手機的.
該文章的地址 : [Android中TabHost的使用]
/**
 * 根據手機的分辨率從 dp 的單位 轉成為 px(像素)
 */

public static int dip2px(Context context, float dpValue) {
 final float scale = context.getResources().getDisplayMetrics().density;
 return (int) (dpValue * scale + 0.5f);
}

/**
 * 根據手機的分辨率從 px(像素) 的單位 轉成為 dp
 */

public static int px2dip(Context context, float pxValue) {
 final float scale = context.getResources().getDisplayMetrics().density;
 return (int) (pxValue / scale + 0.5f);
}
from:http://blog.csdn.net/gf771115/article/details/8230176


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM