小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android根據(jù)分辨率進(jìn)行單位轉(zhuǎn)換

 quasiceo 2014-04-12

Android根據(jù)分辨率進(jìn)行單位轉(zhuǎn)換-(dp,sp轉(zhuǎn)像素px)


作者:lenomon   發(fā)布:2011-12-20 17:01   分類:Android   閱讀:17,890   1條評(píng)論  











       

       






Android系統(tǒng)中,默認(rèn)的單位是像素(px)。也就是說(shuō),在沒(méi)有明確說(shuō)明的情況下,所有的大小設(shè)置都是以像素為單位。


如果以像素設(shè)置大小,會(huì)導(dǎo)致不同分辨率下出現(xiàn)不同的效果。那么,如何將應(yīng)用中所有大小的單位都設(shè)置為’dp’呢?

實(shí)際上TextView.setTextSize()重載了根據(jù)單位設(shè)置大小的方法。


筆者在此基礎(chǔ)上實(shí)現(xiàn)了以下方法:


/**

 * 獲取當(dāng)前分辨率下指定單位對(duì)應(yīng)的像素大?。ǜ鶕?jù)設(shè)備信息)

 * px,dip,sp -> px

 *

 * Paint.setTextSize()單位為px

 *

 * 代碼摘自:TextView.setTextSize()

 *

 * @param unit  TypedValue.COMPLEX_UNIT_*

 * @param size

 * @return

 */


public float getRawSize(int unit, float size) {

       Context c = getContext();

       Resources r;



       if (c == null)

           r = Resources.getSystem();

       else

           r = c.getResources();

       

       return TypedValue.applyDimension(unit, size, r.getDisplayMetrics());

}


下面是網(wǎng)友提供的方法:


/**

* 根據(jù)手機(jī)的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素)

*/


public static int dip2px(Context context, float dpValue) {

  final float scale = context.getResources().getDisplayMetrics().density;

  return (int) (dpValue * scale + 0.5f);

}



/**

* 根據(jù)手機(jī)的分辨率從 px(像素) 的單位 轉(zhuǎn)成為 dp

*/


public static int px2dip(Context context, float pxValue) {

  final float scale = context.getResources().getDisplayMetrics().density;

  return (int) (pxValue / scale + 0.5f);

}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多