首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Android之dp(相对大小) 和 px(像素)之间的相互转换

Android之dp(相对大小) 和 px(像素)之间的相互转换

作者头像
是阿超
发布2022-05-05 20:24:01
发布2022-05-05 20:24:01
6.7K0
举报
文章被收录于专栏:CSDNCSDN

dp和px

dp

dp:安卓中的相对大小,dp就是为了使得开发者设置的长度能够根据不同屏幕的分辨率获得不同的像素(px)数量 (比如:将一个控件设置长度为10dp,那么在160dpi上该控件长度为10px,在320dpi的屏幕上该控件的长度为320/160*10=20个像素点。也就是说dp会随着不同屏幕而改变控件长度的像素数量。)

px

px:像素点,平常所说的手机分辨率1080×1920只是像素数量,也就是1920px × 1080px,代表手机高度有1920个像素点,宽度有1080个像素点。

转换代码

代码语言:javascript
复制
package com.gaojc.util;

import android.content.Context;

/**
 * dp转px | px转dp
 */
public class DensityUtil {
    /**
     * 根据手机的分辨率从 dp(相对大小) 的单位 转成为 px(像素)
     */
    public static int dpToPx(Context context, float dpValue) {
        // 获取屏幕密度
        final float scale = context.getResources().getDisplayMetrics().density;
        // 结果+0.5是为了int取整时更接近
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp(相对大小)
     */
    public static int pxToDp(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dp和px
  • dp
  • px
  • 转换代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档