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);
 }
}

感觉挺好用的

时间: 2024-10-25 13:37:28

android px,dp,sp大小转换工具的相关文章

Android px, dp, sp的区别

Android自兴起以来,开发者不断增加,与此同时市场上参差不齐的设备也不断增加,随之而来的则是开发者需要适配众多机型而带来的困扰与抱怨.并且随着不同厂家定制化不同的ROM,Android设备的碎片化现象日益严重.这篇文章主要讲述如何设计中严格遵从设计图标准的Android页面. 1. px, dp, sp区别 什么是px px就是我们通常所说的像素的单位,在css里面,我们用px比较多.px主要指用户在屏幕上看到的事物的实际大小单位. 什么是dp 在看手机或者电脑参数时,我们经常说到一个关键词

New UI-常用计量单位px,dp,sp,pt解析与转换

New UI-常用计量单位px,dp,sp,pt解析与转换            --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目

android px、sp、dp之间的互转

public static int px2sp(Context context, float pxValue) { final float fontScale = context.getResources().getDisplayMetrics().scaledDensity; return (int) (pxValue / fontScale + 0.5f); } public static int sp2px(Context context, float spValue) { final f

Android屏幕尺寸与度量单位(px,dp,sp)简介

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

px,dp,sp三者的转换

dp是虚拟像素,在不同的像素密度的设备上会自动适配, 比如: 在320x480分辨率, 像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px 计算公式:1dp*像素密度/160 = 实际像素数 下面是工具类: import android.util.TypedValue; import android.content.Context; //常用单位转换的辅助类 public class DensityUtil{ public DensityUtil()

Android px,dp,pt,sp的区别

px(像素点) mm 等Android不建议用 为什么电脑web开发可以用而Android不建议用? 因为px代表像素点个数,一般电脑分辨率都相同 无论14寸还是15寸都是1366*768而手机分辨率一般都不一样 googe解决方案: dp(dip)(根据屏幕密度根据像素算出来的) 相同屏幕大小的手机,密度(分辨率)不同.使用px会显示大小不同的view使用dp相同dp长度的组件,最终显示大小是相同的 建议: dp(dip)表示控件的宽度和高度 sp 文字大小 分辨率问题: 例:320*480(

安卓的显示单位dp、dip、px、sp

dp==dip:设备独立像素 .(device independent pixels) dip是年迈的dp,已经退休,在比较老的代码中还可以看到dip.目前谷歌推荐用dp,在我们开发安卓程序的时候,除了字体之外,都推(强)荐(制)使用dp. sp:比例像素.(scaled pixels ) sp一般用于处理字体.安卓有个东西叫做大字体,那玩意就是专门调整sp的.所以所有关于字体的单位,推(强)荐(制)使用sp. px:像素(pixels) px即手机上面的物理点,属于物理范畴的,所以在写安卓程序

(转)Android中px与dip,sp与dip等的转换工具类

功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html 代码 /** * Android大小单位转换工具类 *  * @author wader *  */public class DisplayUtil { /**  * 将px值转换为dip或dp值,保证尺寸大小不

Android开发中dp,sp和px之间的转换

本文转载于 http://blog.csdn.net/student9128/article/details/53932470 众所周知,在Android开发中dp和px,sp和px之间的转换时必不可少的,下面将转换的代码记录下来: 1 public class DisplayUtils { 2 /** 3 * convert px to its equivalent dp 4 * 5 * 将px转换为与之相等的dp 6 */ 7 public static int px2dp(Context