android px,dp,sp大小轉換工具


package com.voole.playerlib.util;

import android.content.Context;

/**
 * Android大小單位轉換工具類<br/>
 * 
 * float scale = context.getResources().getDisplayMetrics().density;
 */
public class DisplayUtil {
 /**
  * 將px值轉換為dip或dp值,保證尺寸大小不變
  * 
  * @param pxValue
  * @param scale(DisplayMetrics類中屬性density)
  * @return
  */
 public static float px2dip(float pxValue, float scale) {
  return  (pxValue / scale + 0.5f);
 }
 
 /**
  * 將px值轉換為dip或dp值,保證尺寸大小不變
  * 
  * @param pxValue
  * @param context
  * @return
  */
 public static float px2dip(float pxValue,Context context) {
     float scale = context.getResources().getDisplayMetrics().density;
     return  px2dip( pxValue,  scale);
 }

 /**
  * 將dip或dp值轉換為px值,保證尺寸大小不變
  * 
  * @param dipValue
  * @param scale(DisplayMetrics類中屬性density)
  * @return
  */
 public static float dip2px(float dipValue, float scale) {
  return  (dipValue * scale + 0.5f);
 }
 
 /**
  * 將dip或dp值轉換為px值,保證尺寸大小不變
  * 
  * @param dipValue
  * @param context 
  * @return
  */
 public static float dip2px(float dipValue, Context context) {
     float scale = context.getResources().getDisplayMetrics().density;
     return dip2px(dipValue, scale);
 }

 /**
  * 將px值轉換為sp值,保證文字大小不變
  * 
  * @param pxValue
  * @param fontScale(DisplayMetrics類中屬性scaledDensity)
  * @return
  */
 public static float px2sp(float pxValue, float fontScale) {
  return  (pxValue / fontScale + 0.5f);
 }

 /**
  * 將sp值轉換為px值,保證文字大小不變
  * 
  * @param spValue
  * @param fontScale(DisplayMetrics類中屬性scaledDensity)
  * @return
  */
 public static float sp2px(float spValue, float fontScale) {
  return  (spValue * fontScale + 0.5f);
 }
 /**
  * 將sp值轉換為px值,保證文字大小不變
  * 
  * @param spValue
  * @param Context
  * @return
  */
 public static float sp2px(float spValue,Context context) {
     float scale = context.getResources().getDisplayMetrics().density;
     return  sp2px( spValue,  scale);
 }
}

感覺挺好用的


免責聲明!

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



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