android 字体px转sp,Android中px,dp,sp区别及换算
px,dp,sp是Android中常用的距离单位。
基本概念:
屏幕尺寸:指的是屏幕对角线长度,用英寸(in)作为单位,1 in = 2.54 cm。
屏幕分辨率:在横纵向上的像素点数,单位px。一般以横向像素x纵向像素表示,如1080x1920像素。
dpi(dots per inch):屏幕像素密度,指每英寸点数,与屏幕尺寸和屏幕分辨率有关。
假设某屏幕分辨率为1080x1920,屏幕尺寸为5 in,则dpi=(√10802+19202) / 5 = 440, 即该屏幕dpi=440。因此同样尺寸的屏幕,分辨率越高,dpi越高。分辨率相同的屏幕,尺寸越小,dpi越高。
ppi(pixels per inch):屏幕像素密度,指每英寸像素,计算方式同dpi。
px (pixel):每个px对应屏幕的一个点,1px=1个像素点。
dip/dp(device independent pixels):一种基于屏幕密度的抽象单位,密度无关像素,在不同的像素密度的设备上会自动适配。
sp(scaled pixels):比例像素。同dp,可以根据用户的字体大小来缩放。
dpi&ppi
dpi和ppi的区别从技术角度来说,dpi(dot)面向的是印刷领域,而ppi(pixel)面向的是计算机领域。
描述手机屏幕属性使用ppi,在android开发中drawable文件对应的是dpi,实际上ppi和dpi的值是一样的,只是描述不同。
px&dp
在每英寸160点(即160dpi)的显示器上,1dp=1px。
在320*480分辨率,像素密度为160时,1dp=1px。
在480*800分辨率,像素密度为240时,1dp=1.5px。
计算公式:px=dp x(dpi/160)
各种dpi
ldpi:适用于低密度(ldpi)屏幕(0-120dpi)的资源,1dp=3/4px。
mdpi:适用于中密度(mdpi)屏幕(120-160dpi)的资源,1dp=1px。
hdpi:适用于高密度(hdpi)屏幕(160-240dpi)的资源,1dp=1.5px。
xhdpi:适用于超高密度(xhdpi)屏幕(240-320dpi)的资源,1dp=2px。
xxhdpi:适用于超超高密度(xxhdpi)屏幕(320-480dpi)的资源,1dp=3px。
xxxhdpi:适用于超超超高密度(xxxhdpi)屏幕(480-640dpi)的资源,1dp=4px。
drawable/mipmap各种文件夹对应图片大小
drawable-ldpi:36*36
drawable-mdpi:48*48
drawable-hdpi:72*72
drawable-xhdpi:96*96
drawable-xxhdpi:144*144
drawable-xxxhdpi:192*192
dp,sp,px相互转化代码
/**
* dp转换为px
*
* @param context
* @param value 单位dp
* @return
*/
public static int dp2px(Context context, int value) {
float v = context.getResources().getDisplayMetrics().density;
return (int) (v * value + 0.5f);
}
/**
* sp转换为px
*
* @param context
* @param value 单位sp
* @return
*/
public static int sp2px(Context context, int value) {
float v = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (v * value + 0.5f);
}
/**
* px转换为dp
*
* @param context
* @param value
* @return
*/
public static int px2dp(Context context, int value) {
float v = context.getResources().getDisplayMetrics().density;
return (int) (value / v + 0.5f);
}
/**
* px转换为sp
*
* @param context
* @param value
* @return
*/
public static int px2sp(Context context, int value) {
float v = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (value / v + 0.5f);
}
android 字体px转sp,Android中px,dp,sp区别及换算相关推荐
- android 字体像素转换工具类_android px,dp,sp大小转换工具
package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类 * * float s ...
- android 字体选中加粗,Android——TabLayout设置选中字体变大,加粗,透明度
TabLayout自带没有设置选中时字体大小的属性,网上搜了好多基本都不生效,搞了一上午终于好使了,记个笔记记录下,布局要自己定义下,要不不好使. 布局中使用TabLayout的xml文件 andro ...
- android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件
首先要想实现文字变色以及点击,都需要使用到SpannableStringBuilder,实例化该类也很简单,只需将你想要处理的字符串当做参数 SpannableStringBuilder spanna ...
- android 字体选中加粗,Android TabLayout选中字体加粗
解决办法是为TabLayout 添加一个监听,并在监听中自定义选中项UI,代码和布局文件如下 tablayoutTablayout.addOnTabSelectedListener(new TabLa ...
- android 字体加下划线,android自定义带下划线EditText解决文字压线的问题
最近做项目,需要用到带下划线的EditText,通过学习Android提供的示例Notepad,对其进行小小的改动,解决文字压线的问题,但是光标压线的问题没有解决,希望以后能够解决,效果和代码如下: ...
- android 字体滚动效果,2018-02-05 android 左右字滚动效果(跑马灯效果),能直接拿来用的...
MarqueeView 俗名:可垂直跑.可水平跑的跑马灯 学名:可垂直翻.可水平翻的翻页公告 com.sunfusheng marqueeview 1.3.3 pom compile 'com.sun ...
- android 字体像素转换工具类_Android中px与dip,sp与dip等的转换工具类
Android中px与dip,sp与dip等的转换工具类 功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方 ...
- android中的长度单位介绍(dp,sp,px,in,pt,mm)
作为小白学习了一段时间的android,在学习过程中却一直有个疑问,在设置控件大小时面对这几个单位却不知如何选择,查找相关资料后了解了其含义,今天来分享下 dp或dip(device independ ...
- android设备的屏幕单位中的px(像素)、dp与sp的区别以及换算
1.px 即像素,1px代表屏幕上的一个物理像素点. "pixel" 的缩写,像素.是画面显示的基本单位,真实的像素并不是点或者方块(虽然有时这样显示),也没有实际固定长度,只是一 ...
最新文章
- leetcode算法题--二叉树中的列表★
- getopt();getopt_long();getopt_long_only();option
- A Scala Tutorial for Java programmers之(一)Scala入门:Scala例子,以及如何与Java交互
- mysql 5.5 分区_MySQL 5.5 表分区功能增强
- UITableView自定义Section
- Windows Mobile 获取来电号码和屏蔽来电
- Oracle 开放源代码项目
- 【数据库】Hive SQL 正则表达式进阶二(regexp_extract函数进阶使用)
- 中南大学毕业设计(论文)LaTeX模板
- dsp2812软件周期耗时测试,基于DSP2812设计的简易数字频率计
- PDF内容太多分不清?这个PDF加页码的方法可以帮助你
- ONVIF PTZ控制
- Android开发规范,flutter生成二维码
- Unity Gate Fit
- 蓝牙降噪耳机哪个比较好?四大热门降噪蓝牙耳机推荐
- JMeter学习(五)---察看结果树和聚合报告指标项详解
- 台达canopen building_台达可编程控制器DVP-ES2/EX2/ES2-C系列介绍
- c#OpenCVSharp+Zxing识别条形码
- PHP解决网页乱码问题
- java计算机毕业设计汽车售后服务管理系统源码+程序+lw文档+mysql数据库