dp与px转换】的更多相关文章

在编写自定义view的时候,通常会在onTouchEvent回调方法中进行一些关乎距离的判断逻辑,这里的距离常量如果适配到多分辨率的不同设备上时可能会出现一些错乱的问题. 所以一般来说,常常需要dp到Px的转换操作,常用的方法如下: 1. 定义常量,仅仅是个数字,但是隐含的单位为dp 2. 在使用该常量的时候,不是直接用常量的数字,而是先转换成px单位再使用 这样子就可以适配多分辨率了. 以下提供dp和px之间互换的方法: public class DensityUtil { public st…
名词 解释 Px (Pixel像素) 不同设备显示效果相同.这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px.也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小. Screen Size (屏幕尺寸) 一般所说的手机屏幕大小如1.6英寸.1.9英寸.2.2英寸,都是指的对角线的长度,而不是手机面积.我们可以根据勾股定理获取手机的宽和长,当然还有面积. Resolution (分辨率) 指手机屏幕垂直和水平方向上的像素个…
DisplayUtils代码: public class DisplayUtil { public static int px2dip(Context context, float px) { float scale = context.getResources().getDisplayMetrics().density; return (int) (px / scale + 0.5f); } public static int dip2px(Context context, float dp)…
平时适配页面时经常会需要根据屏幕的宽高来设置控件的大小,很多时候在代码中还会需要dp和px互相转换. 今天把最常用的几个记录一下,经测试包括2.3 ~ 5.0之间的版本都可用,其他版本未测,不过应该也可以,,有问题欢迎吐槽. /**屏幕宽度(像素)*/ public static int getScreenWidth(Context context) { WindowManager manager = (WindowManager) context.getSystemService(Contex…
在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法.这个时候,如果需要设置dp的话,就要将dp转换成px了. 以下是一个应用类,方便进行px和dp之间的转换. import android.content.Context; public class DensityUtil { /**…
dp.px.sp转换 public class DensityUtil { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue * @param scale * (DisplayMetrics类中属性density) */ 9 public static int px2dip(float pxValue, float scale) { 10 return (int) (pxValue / scale + 0.5f); 11 } /** * 将dip或…
Android中实现滑动翻页—使用ViewFlipper(dp和px之间进行转换) Android中dp和px之间进行转换 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法.这个时候,如果需要设置dp的话,就要将dp转换成px了. 以下是一个应用类,方便进行px和dp之间的转换.…
Android中dip(dp)与px之间单位转换 dp这个单位可能对web开发的人比较陌生,因为一般都是使用px(像素)但是,现在在开始android应用和游戏后,基本上都转换成用dp作用为单位了,因为可以支持多种分辨率的手机.以下是这两个单位的概念:px (pixels)像素 –一个像素通常被视为图像的最小的完整采样,这个用的比较多,特别是web开发,页面基本都是使用像素作为单位的.dip或dp (device independent pixels)设备独立像素 — 这个和设备硬件有关,一般我…
px和dp(sp) 之间转化公式: 1  乘以(dp转px)或者除以(px转dp) scal缩放因子,在上浮0.5f /** * 密度转换像素 * */ public static int dip2px(float dipValue) { return (int) (dipValue * scale + 0.5f); } /** * 像素转换密度 * */ public int px2dip(float pxValue) { return (int) (pxValue / scale + 0.5…
/** * dp转px * @param context * @param dp * @return */ public static int dp2px(Context context, float dp){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(dp * scale + 0.5f); } /** * px转dp * @param context * @param…