Android單位轉換 (px、dp、sp之間的轉換工具類)

來源:互聯網
上載者:User

標籤:float   density   .net   問題   stat   metrics   source   lib   splay   

   在Android開發中,涉及到螢幕視頻問題的時候,px、dp、sp之間的轉換比較重要的一部分,所以楊哥整理了一個工具類給大夥用。

package com.zw.express.tool;


import android.content.Context;
import android.util.DisplayMetrics;
/**
 * ydc
 * @author Administrator
 *
 */
public class DensityUtils {
 /**
     * 根據手機的解析度從 dip 的單位 轉成為 px(像素)
     */
public static int dp2px(Context context, float dpValue) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float scale = dm.density;
return (int) (dpValue * scale + 0.5f);
}


/**
     * 根據手機的解析度從 px(像素) 的單位 轉成為 dp
     */
public static float px2dp(Context context, float pxValue) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float scale = dm.density;
return (pxValue - 0.5f)/scale ; 
}


 /**
     * 將px值轉換為sp值,保證文字大小不變
     */
public static int px2sp(Context context, float pxValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (pxValue / fontScale + 0.5f); 



/**
     * 將sp值轉換為px值,保證文字大小不變
     */
public static int sp2px(Context context, float spValue) { 
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; 
return (int) (spValue * fontScale + 0.5f); 

}

Android單位轉換 (px、dp、sp之間的轉換工具類)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.