Android中dp、sp和px之间进行转换

sp,dp,px尺寸单位 前言: 众所周知,Android厂商非常多,各种尺寸的android手机、平板层出不穷。导致了Android生态环境的碎片化现象越来越严重。Google公司为了解决分辨率过多的问题,在Android的开发文档中定义了px、dp、sp,方便开发者适配不同分辨率的Android设备。对于初级程序员来说理解掌握适配的一些基础知识是必须的。 概念 px: 即像素,1px代表屏幕上一个物理的像素点; px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同 ​ 比如我们通常说的手机分辨率80 阅读详情

以下是一个应用类,方便进行px 、sp和dp之间的转换,使用时可直接复制到代码中作为一个工具类。

public class DisplayUtil {
    /**
     * 将px值转换为dip或dp值,保证尺寸大小不变 
     *
     * @param pxValue
     * @param scale
     *            (DisplayMetrics类中属性density) 
     * @return
     */
    public static int pxtodip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 将dip或dp值转换为px值,保证尺寸大小不变 
     *
     * @param dipValue
     * @param scale
     *            (DisplayMetrics类中属性density) 
     * @return
     */
    public static int diptopx(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }

    /**
     * 将px值转换为sp值,保证文字大小不变 
     *
     * @param pxValue
     * @param fontScale
     *            (DisplayMetrics类中属性scaledDensity) 
     * @return
     */
    public static int pxtosp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

    /**
     * 将sp值转换为px值,保证文字大小不变 
     *
     * @param spValue
     * @param fontScale
     *            (DisplayMetrics类中属性scaledDensity) 
     * @return
     */
    public static int sptopx(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }
}  



px、dp与sp的区别 目录 1、px 2、dp 3、sp 4、dpi dp与px sp与px 1、px   即像素,1px代表屏幕上的一个物理像素点。 2、dp   dip:device independent pixels(设备独立像素),dp与dip一样,不同的设备有不同的显示效果,一般为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。 3、sp   sp:scale-independent pixels(缩放独立像素),与缩放无关的抽象像素,它和dp很相似,但唯一的区别在于,And... 阅读详情

相关推荐

PID调参避坑指南:为什么你的电机总是震荡?从比例带积分到微分实战解析

本文针对电机控制中常见的震荡问题,提供了一份PID调参实战指南。文章深入解析了比例(P)、积分(I)、微分(D)三个参数对系统稳定性的影响,揭示了比例增益过大是导致震荡的关键原因之一,并给出了从纯比例调试到引入积分、微分的系统化调参流程与避坑要点,帮助工程师快速实现电机平稳、精准的控制。

weixin_28223453的博客 456

Android中px, dp, sp单位转换

开发中经常会遇到尺寸之间的转换,比如设计图中尺寸单位基本都是像素(px),但是对于Android设备来说直接使用像素作为单位肯定是不行的。同样的10px,在分辨率很低的手机和分辨率很高的手机上显示的实际长度肯定是不一样的,所以Android团队才会采用dp作为Android开发尺寸单位,dp是一种相对单位(根据屏幕的像素密度,也就是每英寸像素数的不同而调整),能够尽量保证相同数值的dp长度在不同的

Enjoy life,Enjoy coding!! 1454

Wine7.22实战:如何在Ubuntu上完美运行通达信和微信(附字体配置技巧)

本文详细介绍了如何在Ubuntu系统上使用Wine7.22版本,完美运行通达信和微信这两款Windows专属软件。通过选择稳定的Wine7.22版本、利用现成的兼容容器,并重点解决了中文字体渲染的核心难题,提供了从环境搭建、字体配置到软件安装调优的一站式实战指南,帮助用户在Linux环境下无缝使用关键金融与通讯工具。

weixin_29280657的博客 549

Android dp、sp、xp 相互转换

/** * 将dip值转换为px值 * @return Float */ fun dp2px(context: Context, dp: Float): Float { return TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, dp, context.resources.displayMetrics ) }

冬无雪的博客 3209

通过EMIF接口实现FPGA与DSP的高速连接(方法)

请注意,具体的连接细节和步骤可能会根据所使用的FPGA和DSP型号以及特定的应用需求而有所不同。开发DSP和FPGA上的软件,以实现数据交换和处理。根据系统的具体需求,对FPGA和DSP的接口逻辑进行优化,以减少延迟、提高数据吞吐量或降低资源消耗。它通常支持多种类型的存储器,如SRAM、DRAM、ROM等,以及通过特定的接口与FPGA连接。对于FPGA,需要编程来实现与DSP的接口逻辑,包括地址译码、数据传输、时序控制等。在连接完成后,进行详细的调试和测试,以确保数据能够在DSP和FPGA之间正确传输。

AigcFox的博客 4584

Windows 10下Gpg4win 4.3.1安装与配置全攻略:从下载到邮件加密实战

本文详细介绍了在Windows 10系统下安装和配置Gpg4win 4.3.1的全过程,包括下载、验证、自定义安装以及密钥管理。特别重点讲解了如何通过Kleopatra证书管理器进行密钥创建和管理,以及在Outlook中实现邮件加密的实战操作,帮助用户全面提升数据安全防护能力。

weixin_29271263的博客 301

android 字体px转sp,如何相互转换DP,PX,SP,尤其是DP和SP?

接受的答案缺少一些有用的转换。SP到PXfloat sp = 20;float px = sp * getResources().getDisplayMetrics().scaledDensity;要么float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetri...

weixin_34599904的博客 1190

SFR算法实现详解:从边缘检测到MTF计算的完整流程

本文详细解析了SFR算法从边缘检测到MTF计算的完整流程,包括边缘检测、ESF超采样、LSF差分等关键步骤。通过代码示例和实战经验,帮助开发者高效实现成像系统解析力评估,优化MTF测量精度。适用于摄像头模组调试、工业检测等场景。

Black的专栏 1009

Android px转dip px转sp法则

在一些情况下,美工往往给我的都是px 这个时候我们就需要根据屏幕分辨率把px转成dip或者sp 下面就是计算公式:https://blog.youkuaiyun.com/xiaoyuan511/article/details/39205969[html] view plain copy<FrameLayout xmlns:android="http://schemas.android.com/apk/r...

大灰狼的小绵羊哥哥的博客 1370

Java utgard连接OPC问题记录

怎么开启是个问题, 是在引入openscada的jar包里的Sever类中修改,这就犯难了, 其实没必要, 只要在自己项目下创建与openscada中Server类相同的路径,并复制Server过去改就行了, 项目会优先使用本地类,像下面这样。奇迹发生了,0x00000005解决. 注: 我的安全补丁编码跟网上查到的并不一样, 所以最初没有删,后来全都删了就好了,这个编码规则咱也不知道.安全日志中记录用户登录行为, OPC通信需要使用Windows系统用户进行登录, 如果用户名密码错误这里会有相关记录.

wangxin1949的博客 2839

Scrapy爬虫之热门网站数据爬取--------第2关

第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r

weixin_44949187的博客 2835

Android中XML尺寸单位的相互转换——dp(dip)、px、sp的相互转换

Android中XML尺寸单位的相互转换——dp(dip)、px、sp的相互转换

qq_54087555的博客 2792

《UDS协议从入门到精通》系列——到底什么是DTC?

到底什么是DTC?看这里,深度图解DTC格式,详述DTC状态位、快照信息和扩展信息!!

车载系统攻城狮 1万+

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

众所周知,在Android开发中dp和px,sp和px之间的转换时必不可少的,下面将转换的代码记录下来

那些年我们一起写的代码 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android 「dp和px」「sp和px」之间相互转换

前言 android中在xml布局中我们可以使用dp和px都可以; 但是在代码中,很多方法只提供了设置px的方法,这时候就需要用到dp和px相互切换了。 方法 /** * dp和px之间进行转换 */ public class DensityHelper { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) {

fenglolo的博客 1466

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android开发中dp和px,sp和px之间的转换时必不可少的,网上流传的方法

package com.nyw.freshdistribution.util; import android.content.Context; public class DisplayUtils { /** * convert px to its equivalent dp * 将px转换为与之相等的dp */ public static int px2dp(Context context, float pxValue) { final f.

u013519290的博客 197

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android dp转px的公式_android中px和dp,px和sp之间的转换方法

在Android开发中dp和px,sp和px之间的转换时必不可少的,网上流传的方法public class DisplayUtils {/*** convert px to its equivalent dp* 将px转换为与之相等的dp*/public static int px2dp(Context context, float pxValue) {final float scale = co...

weixin_39696665的博客 331

Android px、dp、sp之间的转换和获取dimens.xml文件的dp、sp值的管理类

1.直接上代码 public class ScreenManager { private static final String TAG = "ScreenManager"; /** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static int dipToPx(Context context, float dpValue) { final float scale = context.get...

UrasakiNakajima的博客 1534

笔记整理-px和dp,px和sp之间的转换

public int dp2px(int dpVal) {         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, getResources().getDisplayMetrics());     }     public int sp2px(int spVal) {   

lxx1285936904的博客 319

Android:长度单位详解(px、dp、sp)

长度单位1、重要概念1.1 屏幕尺寸1.2 屏幕分辨率1.3 屏幕像素密度1.4 屏幕尺寸、分辨率、像素密度三者关系2、六种单位介绍2.1、dp和px的换算2.2、在代码中转换单位2.3、sp与dp的区别2.4、总结参考 1、重要概念 1.1 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(inch),1英寸=2.54cm 1.2 屏幕分辨率 含义:手机在横向、纵向上的像素点数总和 例子:1920x1080,即高度方向上有1920个像素点,宽度方向上有1080个像素点 单位:px(pixel),1px

JMW1407的博客 9413

dp sp px 转换

public class DP_SP_PX_Utils { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue * @param scale * (DisplayMetrics类中属性density) * @return */ public static int px2dip(Context c

yangxf 496

Android dp转px

当用到用代码写布局的时候,就会用到转像素了 package com.meetdilse.store.utils; import android.content.res.Resources; /** * Created by ZhongXiaolong on 2022/01/29 17:26. * <p> * 单位转换 */ public final class DpUtil { private DpUtil() { /*私有*/} private static

weixin_44911775的博客 1187

Android单位转换(px、sp、dp之间的转换)

import android.content.Context; import android.util.TypedValue; /** * Created by du on 17/7/20. */ public class DisplayUtil { /** * px 转为 dip. */ public static int px2dip(Context

Signal_Du的博客 788

Android中 dp、px、sp的相互转换

zh public class UnitUtils { public static int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); }...

Shine_on_the_earth的博客 218
上一篇: Android中定时器的3种实现方法
下一篇: Android Studio中Git的配置及协同开发
谦行
博客等级 码龄11年 182粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值