一、像素

Android支持的像素显示单位有px像素、in英寸、mm毫米、pt磅(1/72英寸)、dp(与设备无关的显示单位,也写作dip)、sp(用于设置字体大小)
px 是手机屏幕上可显示的最小单位,与物理设备的显示屏无关。一般来说同样尺寸的屏幕 看起来越清晰,像素密度越高,以px计量的分辨率也越高。
dp 与物理设备无关,只与屏幕的尺寸有关。一般来说,同样尺寸的屏幕以dp计量的分辨率是一样的,无论这个手机是哪个厂家生产的,dp 大小都是一样的。
sp 的原理跟dp差不多,专门用于设置字体大小。手机在系统设置里可以调整字体的大小(小、普通、大、超大)。设置普通字体时,同数值dp和sp的文字看起来一样大。如果设置为大字体,用dp设置的文字大小没有变化,用sp设置的字体就会变大。 dp 和sp 之间的联系取决于具体设备上的像素密度,像素密度就是DisplayMetrics里的density 参数。当density = 1.0时,表示一个dp值对应一个sp值;当density = 1.5 时,表示两个dp值对应3个px值;当density = 2.0时,表示一个dp值对应2个px值;

//根据手机的分辨率从dp转换成px
public static int dip2px(Context context, float dpValue) {//获取当前手机的像素密度float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);//四舍五入取整}//根据手机的分辨率从px转换成dppublic static int px2dip(Context context, float pxValue) {//获取当前手机的像素密度float scale = context.getResources().getDisplayMetrics().density;return (int) (pxValue / scale + 0.5f);//四舍五入取整}

在 XML布局文件中,为了让不同的设备屏幕拥有统一的显示效果,除了sp用于设置文字大小外,其余要用大小的地方都用sp。在代码中情况又有所不同,Android用于设置大小的函数都是以px为单位。无论是LayoutParams 里的width和height ,还是setMargins 和setPadding ,参数单位都是px ,要想在代码中使用dp设置布局大小或间距,得先把dp值转换成px值。

二、颜色

在Android 中颜色由透明度alpha 和RGB 三原色定义,有八位16进制数与六位十六进制数两种编码。例如八位编码 FFEEDDCC ,FF表示透明度,EE表示红色的浓度,CC表示蓝色的浓度,CC表示绿色的浓度。透明度为FF表示完全不透明,为00表示完全透明。RGB的数值越大颜色浓度越浓也就越亮,数值越小颜色越暗淡。亮到极致就是白色,暗到极致就是黑色。
六位十六进制编码有两种情况 ,在XML文件中默认不透明(FF),在代码中默认透明(00),透明就表示看不到,因此一般在代码中不使用六位编码。

tv_padding.setBackgroundColor(0x00ff00);//设置背景为透明绿色
tv_padding.setBackgroundColor(0xff00ff00);//设置背景为不透明绿色
//设置系统已定义的颜色,可以使用下表的颜色
tv_padding.setBackgroundColor(Color.BLACK);

安卓系统已经定义好的颜色常量:

在布局文件中设置颜色需要在色值前面加“#” 在代码中0x;
Color.rgb(int red,int green,int blue)
Color.argb(int alpha,int red,int green,int blue)
这两种方法第一个是只要红绿蓝三色,第二个是带着透明度。每个参数都是0-255之间的数字。

也可以在res/values目录下的color.xml中定义的颜色,在布局中使用 @color/常量名,在java代码中使用 getResources().getColor(R.color.常量名)

三、屏幕分辨率
在Android中需要获取手机的屏幕分辨率,然后动态调整界面上的布局。在代码中获得分辨率就是想办法获得DisplayMetrics对象,然后从该对象中获得宽度,高度,像素密度等信息。DisplayMetrics类常用的属性有以下三个:

  • widthPixels:以px为单位的宽度值
  • HeightPixels:以px为单位的高度值
  • density:像素密度,即一个dp单位包含多少个px单位
 public void getAndroiodScreenProperty() {//从系统服务中获取窗口管理器WindowManager wm = (WindowManager)this.getSystemService(Context.WINDOW_SERVICE);DisplayMetrics dm = new DisplayMetrics();//从默认显示器中获取显示参数保存到dm对象中wm.getDefaultDisplay().getMetrics(dm);int width = dm.widthPixels;         // 屏幕宽度(像素)int height = dm.heightPixels;       // 屏幕高度(像素)float density = dm.density;         // 屏幕密度(0.75 / 1.0 / 1.5)int densityDpi = dm.densityDpi;     // 屏幕密度dpi(120 / 160 / 240)// 屏幕宽度算法:屏幕宽度(像素)/屏幕密度int screenWidth = (int) (width / density);  // 屏幕宽度(dp)int screenHeight = (int) (height / density);// 屏幕高度(dp)
}

————————————————
原文链接:https://blog.csdn.net/pky86676022/article/details/127733477

android屏幕显示(像素、颜色、分辨率)相关推荐

  1. pixel(css pixel device pixel)resolutioncss pixel(像素和分辨率)

    文章目录 pixel&resolution(像素和分辨率) reference 像素和分辨率 分辨率 屏幕像素 像素&分辨率示例 图像像素 小结 css 像素 开发中遇到的像素问题 使 ...

  2. 关于图片的像素、分辨率、尺寸问题的解答,以及显示器的显示大小。

    像素.分辨率.尺寸 https://zhuanlan.zhihu.com/p/60192719 关于显示器显示大小 复制的这个答案:https://www.zhihu.com/question/198 ...

  3. c#位图转换未矢量图_PS基础:像素与分辨率,位图与矢量图

    一.像素与分辨率 1. 像素 定义:图像中的最小颜色单位,是一个非常小的方形颜色块. 像素(Pixel)一般用px表示,每个像素只能有一个颜色. 将图像无限放大,会发现图像是由许多色彩相近的颜色方块组 ...

  4. 像素是什么意思?一个像素有多大? 告诉你像素和分辨率的关系!

    像素是什么意思?一个像素有多大? 告诉你像素和分辨率的关系! 图片的像素和分辨率 对于像素和分辨率这两个词,主要见于图片和显示设备上.只要你用到手机里的照相功能,你都要接触到这两个概念.只是大多数人都 ...

  5. 像素是什么意思?一个像素有多大?告诉你像素和分辨率的关系!

    2019独角兽企业重金招聘Python工程师标准>>> 一. 图片的像素和分辨率 对于像素和分辨率这两个词,主要见于图片和显示设备上.只要你用到手机里的照相功能,你都要接触到这两个概 ...

  6. 像素是什么,一个像素有多大,像素和分辨率的关系

    图片的像素和分辨率 对于像素和分辨率这两个词,主要见于图片和显示设备上.只要你用到手机里的照相功能,你都要接触到这两个概念.只是大多数人都是一知半解,而更多的人却根本就不知道,白白浪费了手机里500万 ...

  7. 【OpenGL】图片的像素和分辨率

    文/刘付罗金20120912 图片的像素和分辨率 对于像素和分辨率这两个词,主要见于图片和显示设备上.只要你用到手机里的照相功能,你都要接触到这两个概念.只是大多数人都是一知半解,而更多的人却根本就不 ...

  8. RGB图像-像素、分辨率、相关概念

    RGB图像-像素.分辨率.相关概念 一:RGB 1> RGB 基本理解 2> RGB分类RGB16\RGB24\RGB32 1. RGB16 2. RGB24 2. RGB32 二: 图像 ...

  9. 像素和分辨率的关系 完全剖析

    像素是什么意思?一个像素有多大?告诉你像素和分辨率的关系! 图片的像素和分辨率 对于像素和分辨率这两个词,主要见于图片和显示设备上.只要你用到手机里的照相功能,你都要接触到这两个概念.只是大多数人都是 ...

最新文章

  1. FPGA(2)基础语法 -- 按键控制led(alway@语句)
  2. Java基础-注解和反射
  3. Python中浮点数精度处理
  4. Linux——进程间通信(总结)
  5. 从零开始学习docker(十)搭建WordPress+Mysql,为什么要用Docker Compose
  6. s5-14 链路状态路由选择
  7. View,SurfaceView,SurfaceHolder
  8. 微软开放Xbox 360游戏开发平台
  9. CodeForces-748D 贪心
  10. 常用校验算法CRC、MD5、SHA_转
  11. 李刚-我的全栈之路导师之一
  12. P2P共享经济都可接受 O2O×××有何不可?
  13. VISIO 2013软件和安装教程
  14. 架空线路的基本结构及组成
  15. docker/kubernetes学习笔记(持续更新)
  16. [转]ubuntu常用软件
  17. C# Thread详解
  18. Linux关闭swap
  19. Matlab--基于前馈补偿的PID控制算法及其仿真
  20. Android SDK 国内镜像

热门文章

  1. Service Unavailable 问题
  2. python将中文标点与 英文全角标点转英文半角
  3. freertos临界段保护
  4. 【计算机毕业设计】基于微信小程序的房屋租赁系统
  5. CDN网络加速适合那些场景使用?
  6. new bing 使用出现“”]Sorry, looks like your network settings are preventing access to this feature.解决方法
  7. MyBatis 核心配置综述之 Configuration详解
  8. 009 如何更好地进行沟通
  9. 震惊,登入P站的post_key竟然在!!!
  10. 数据运营-常见问题 留存率/连续登陆等(SQL Hive)