android 各Display转化(一)
来源:互联网 发布:用别人淘宝店铺引流量 编辑:程序博客网 时间:2024/06/05 20:10
Android系统中,默认的单位是像素(px)。就是说,在没有明确说明的情况下,所有的大小设置都是以像素为单位。
如果以像素设置大小,会导致不同分辨率下出现不同的效果(因为屏幕分辨率与屏幕的大小没有关联)。那么,如何将应用中所有大小的单位都设置为’dp’呢?
大家还在为 android px 和 dip,dp; px 和 sp 的相互转化而烦恼吗? 今天我就来解决大家这个烦恼,一个简单的转化工具类,从此再也不要烦恼了。
import android.content.Context;
public class DisplayUtil {
/**
* 将px转为dip或dp
* @param context
* @param pxValue
* @return
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return getDivRound(pxValue, scale);
// return (int)(pxValue / scale + 0.5f);
}
/**
* 将dip或dp转为px
* @param context
* @param dipValue
* @return
*/
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return getMultRound(dipValue, scale);
// return (int)(dipValue * scale + 0.5f);
}
/**
* 将px转为sp
* @param context
* @param pxValue
* @return
*/
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return getDivRound(pxValue, fontScale);
// return (int)(pxValue / fontScale + 0.5f);
}
/**
* 将sp转为px
* @param context
* @param spValue
* @return
*/
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return getMultRound(spValue, fontScale);
// return (int)(spValue * fontScale + 0.5f);
}
/**
* 乘法运行并四舍五入
* @param x
* @param y
* @return
*/
public static int getMultRound(float x, float y){
return Math.round(x*y);
}
/**
* 除法运行并四舍五入
* @param dividend 被除数
* @param divisor 除数
* @return
*/
public static int getDivRound(float dividend, float divisor){
return Math.round(dividend/divisor);
}
}
- android 各Display转化(一)
- (转)Android display架构分析(一)
- Android display架构分析(一)
- Android display架构分析(一)
- Qualcomm Android display架构分析(一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Android 4.2 Wifi Display 之 Settings 源码分析(一)
- Android 4.2 Wifi Display核心分析 (一)
- Java中数组 枚举 内部类
- rsync 同步centos源
- golang学习笔记
- MySql数据库基本语句
- Dos命令查看端口占用及关闭进程
- android 各Display转化(一)
- Ubuntu 16.04中为Chromium、Chrome、Firefox安装Flash播放器插件
- 自定义ContentProvider
- OC的继承和多态
- (多校第六场1002)HDU5794 A Simple Chess(Lucas+dp)
- 09、CSS3新增背景属性
- C++的多态性详解
- UIImage图片模式
- Linux内核设计与实现 (二) 内核开发的准备