当前位置: 首页 > news >正文

网站管理机制建设情况电商怎么做推广

网站管理机制建设情况,电商怎么做推广,wordpress默认登陆地址,建设音乐网站功能定位Android 屏幕显示与 Bitmap 内存详解 前言 在 Android 开发中,理解屏幕显示单位和 Bitmap 内存占用是构建高效应用的基础。本文将详细介绍相关概念、计算公式及单位转换,并通过实例分析 Bitmap 在内存中的表现。 一、屏幕显示单位基础 1.1 基本单位及…

Android 屏幕显示与 Bitmap 内存详解

前言

Android 开发中,理解屏幕显示单位和 Bitmap 内存占用是构建高效应用的基础。本文将详细介绍相关概念、计算公式及单位转换,并通过实例分析 Bitmap 在内存中的表现。

一、屏幕显示单位基础

1.1 基本单位及概念

  • px 手机屏幕分辨率的基本单位,与物理像素一一对应
  • dp 密度无关像素,1dp = (屏幕密度/160)px,用于保证不同屏幕密度下视图尺寸的一致性
  • sp 可缩放像素,主要用于字体大小,会随系统字体大小设置变化
  • dpi 屏幕密度,每英寸包含的像素点数,密度越大,每英寸内容纳的点数就越多
  • ppi 每英寸像素数,由屏幕分辨率和物理尺寸计算得出的近似值

1.2 Android 密度等级

密度等级密度值(dpi)比例对应系数资源目录
ldpi1200.75x0.75drawable-ldpi
mdpi1601x1.0drawable-mdpi
hdpi2401.5x1.5drawable-hdpi
xhdpi3202x2.0drawable-xhdpi
xxhdpi4803x3.0drawable-xhdpi
xxxhdpi6404x4.0drawable-xxhdpi

二、屏幕单位计算公式与转换

2.1 基本计算公式

  • pxdp 的转换:
px = dp × (dpi ÷ 160)
dp = px × (160 ÷ dpi)
  • pxsp 的转换:
px = sp × (dpi ÷ 160) × fontScale
sp = px ÷ ((dpi ÷ 160) × fontScale)
  • ImageView 实际像素计算:
    实际像素宽/高 = XML中设置的dp值 × (inTargetDensity ÷ 160)
  • Bitmap 尺寸计算:
    加载后的Bitmap宽/高 = 原始宽/高 × (inTargetDensity ÷ inDensity)

2.2 单位转换工具

object DisplayUtils {/*** dp转px*/fun dp2px(context: Context, dpValue: Float): Int {val scale = context.resources.displayMetrics.densityreturn (dpValue * scale + 0.5f).toInt()}/*** px转dp*/fun px2dp(context: Context, pxValue: Float): Int {val scale = context.resources.displayMetrics.densityreturn (pxValue / scale + 0.5f).toInt()}/*** sp转px*/fun sp2px(context: Context, spValue: Float): Int {val fontScale = context.resources.displayMetrics.scaledDensityreturn (spValue * fontScale + 0.5f).toInt()}/*** px转sp*/fun px2sp(context: Context, pxValue: Float): Int {val fontScale = context.resources.displayMetrics.scaledDensityreturn (pxValue / fontScale + 0.5f).toInt()}/*** 获取屏幕宽度(px)*/fun getScreenWidth(context: Context): Int {return context.resources.displayMetrics.widthPixels}/*** 获取屏幕高度(px)*/fun getScreenHeight(context: Context): Int {return context.resources.displayMetrics.heightPixels}/*** 获取状态栏高度*/fun getStatusBarHeight(context: Context): Int {val resourceId = context.resources.getIdentifier("status_bar_height", "dimen", "android")return if (resourceId > 0) {context.resources.getDimensionPixelSize(resourceId)} else {0}}
}

2.3 获取设备显示信息

fun getDisplayMetricsInfo(context: Context): String {val dm = context.resources.displayMetricsreturn """屏幕宽度(px): ${dm.widthPixels}屏幕高度(px): ${dm.heightPixels}屏幕密度(density): ${dm.density}屏幕密度DPI: ${dm.densityDpi}X轴DPI: ${dm.xdpi}Y轴DPI: ${dm.ydpi}字体缩放因子: ${dm.scaledDensity}屏幕宽度(dp): ${dm.widthPixels / dm.density}屏幕高度(dp): ${dm.heightPixels / dm.density}""".trimIndent()
}

三、Bitmap 内存计算与管理

3.1 Bitmap 内存计算公式

Bitmap 在内存中的占用大小计算公式:

内存大小(字节) = 宽度(像素) × 高度(像素) × 每像素字节数

每像素字节数由 Bitmap.Config 决定:

配置类型每像素字节数说明
ALPHA_81仅存储透明度
RGB_5652无透明度通道
ARGB_88884默认配置,最高质量
RGBA_F168高精度浮点配置

3.2 Bitmap 内存大小:未压缩的原始像素数据大小

  • 以一张 1920×1080 分辨率的图片为例:
    • 内存占用 (ARGB_8888)1920 × 1080 × 4 = 8,294,400 字节 ≈ 7.91 MB

3.3 不同单位的内存大小表示

fun calculateBitmapMemorySize(bitmap: Bitmap): String {val bytes = bitmap.byteCountval kb = bytes / 1024.0val mb = kb / 1024.0return """内存占用(Bytes): $bytes bytes内存占用(KB): ${String.format("%.2f", kb)} KB内存占用(MB): ${String.format("%.2f", mb)} MB""".trimIndent()
}
http://www.yayakq.cn/news/604209/

相关文章:

  • 网站设计实验惠阳网络推广公司
  • 常德网站开发服务python网站开发详细步骤
  • 邢台专业做网站费用信息系统开发计划
  • 看外国网站怎么改dns成功的网站不仅仅是优化排
  • 傻瓜式网页制作网站高端互联网推广
  • 门户网站建设的公司电子商务网站建设的具体内容
  • 用app怎么样建网站宁波门户网站建设
  • 绵阳市建设厅官方网站购买腾讯云主机可以直接做网站
  • 外贸网站定制制作公司无锡阿凡达网站建设
  • 有没有做淘宝客网站的搭建wordpress网站
  • 精湛的中山网站建设在线电子印章制作生成免费
  • 网站首页布局自适应网站开发所需配置
  • 网站域名可以更改吗软件开发外包什么意思
  • 卖衣服的网站排名专业手机网站建设推荐
  • 网站开发毕业设计论文增城百度做网站多少钱
  • 天津住房和城乡建设部网站小程序软件定制开发
  • wp网站建设教程wdcp 网站打不开
  • 韩国优秀网站设计建筑工程分包平台
  • 高校网站群建设方案重庆市建设工程信息网 023dir
  • 现代网站开发技术个人可以做购物网站吗
  • 网站竞争对手如何做调研淄博企业网站排名优化
  • 公司网页网站建设 ppt模板电子商务网站建设实训心得体会
  • 1营销型网站建设校园微网站界面
  • 湖州网站建设培训教程十大免费erp软件
  • 个人自助网站扁平式网站模板
  • 怎样用服务器做网站网络版微信
  • 十大免费货源网站城市建设网站金
  • 南昌免费做网站企业网站开发职责
  • 汽车专业科技网站建设怎么建立一个群
  • 下载网页模板的网站网站开发前景怎么样