Android 密度 DisplayMetrics 提供三种 密度
DENSITY_LOW 最小 密度 对应 文件夹 ldpi 是 120
DENSITY_MEDIUM 适中 密度 对应 文件夹 mdpi是160
DENSITY_HIGH 最大 密度 对应 文件夹 hdpi是240
xhdpi是320 (在Android 2.2 源码中未找到该属性)
默认 密度为 DENSITY_MEDIUM
设图标原尺寸为 x,y.图标取出文件夹时的尺寸为,Rx,Ry.
具体公式是:
density 驱动的密度
Rx = x * (density/ density(文件夹对应的dpi))
Ry = y * (density / density(文件夹对应的dpi))
eg:
现在 我有一张 18px * 18px 的图片
我的手机驱动密度为 240
因为:ldpi 的 density 为 120
所以:Rx = 18 * (240 / 120) Rx = 32px
Ry = 18 * (240 / 120) Rx = 32px
又因为: hdpi 的 density 为240
所以:Rx = 18 * (240 / 240) = 18px
Ry = 18 * (240 / 240) = 18px
依次类推
mdpi 和 xhdpi 都能算出来了.
附带一个网站:(计算不同 密度的 实际大小)
http://coh.io/adpi/
常规的我们可能只考虑QVGA,HVGA,WVGA,FWVGA和DVGA,但是抛去了手机不谈,可能平板使用类似 WSVGA的1024x576以及WXGA的1280x768等等。
QVGA = 320 * 240;
WQVGA = 320 * 480;
WQVGA2 = 400 * 240;
WQVGA3 = 432 * 240;
HVGA = 480 * 320;
VGA = 640 * 480;
WVGA = 800 * 480;
WVGA2 = 768 * 480;
FWVGA = 854 * 480;
DVGA = 960 * 640;
PAL = 576 * 520;
NTSC = 486 * 440;
SVGA = 800 * 600;
WSVGA = 1024 * 576;
XGA = 1024 * 768;
XGAPLUS = 1152 * 864;
HD720 = 1280 * 720;
WXGA = 1280 * 768;
WXGA2 = 1280 * 800;
WXGA3 = 1280 * 854;
SXGA = 1280 * 1024;
WXGA4 = 1366 * 768;
SXGAMINUS = 1280 * 960;
SXGAPLUS = 1400 * 1050;
WXGAPLUS = 1440 * 900;
HD900 = 1600 * 900;
WSXGA = 1600 * 1024;
WSXGAPLUS = 1680 * 1050;
UXGA = 1600 * 1200;
HD1080 = 1920 * 1080;
QWXGA = 2048 * 1152;
WUXGA = 1920 * 1200;
TXGA = 1920 * 1400;
QXGA = 2048 * 1536;
WQHD = 2560 * 1440;
WQXGA = 2560 * 1600;
QSXGA = 2560 * 2048;
QSXGAPLUS = 2800 * 2100;
WQSXGA = 3200 * 2048;
QUXGA = 3200 * 2400;
QFHD = 3840 * 2160;
WQUXGA = 3840 * 2400;
HD4K = 4096 * 2304;
HXGA = 4096 * 3072;
WHXGA = 5120 * 3200;
HSXGA = 5120 * 4096;
WHSXGA = 6400 * 4096;
HUXGA = 6400 * 4800;
SHV = 7680 * 4320;
WHUXGA = 7680 * 4800;
对于Android游戏中适应高分辨率的平板而言,资源可以考虑一个强制的绝对布局保证全屏显示,而手机上的多种分辨率使用相对布局更为合理些
相关推荐
这个项目名为"Android通过相机预览使用原生接口捕捉人脸并取框",使用了Android Studio作为集成开发环境(IDE),并且直接调用了Android系统的原生接口来实现人脸检测功能。以下是关于这一主题的详细知识讲解: 1. ...
dp是一种与设备独立的像素单位,它考虑了设备的密度,使得在不同分辨率的屏幕上,同一物理尺寸的UI元素看起来大小相同。开发者可以通过创建类似`values-sw480dp`、`values-sw600dp`等不同尺寸的资源目录,为更宽的...
7. **绝对布局(AbsoluteLayout)**:在较旧的版本中使用,但在新的开发中不推荐,因为它依赖于绝对像素坐标,不利于不同屏幕尺寸的适配。 8. **流式布局(FlowLayout)**:非原生Android布局,但可以通过第三方库...
此外,使用`dp`(密度无关像素)单位而不是像素可以保证元素在不同密度屏幕上的大小一致性。 在"Demo_Fourcell"这个项目中,开发者可能已经实现了上述的一种或多种布局方式。通过查看源代码,我们可以深入学习布局...
此外,使用相对布局(`RelativeLayout`)或约束布局(`ConstraintLayout`)可以更灵活地控制元素之间的相对位置,而不是固定像素值。 接下来,我们要考虑布局适配。Android的`sw600dp`、`sw720dp`等断点概念用于...
`android:layout_width` 和 `android:layout_height`: 设置布局的宽度和高度,可以使用 `fill_parent` 或 `match_parent` 让布局填充整个父容器,`wrap_content` 让布局根据内容自动调整大小,也可以直接指定像素值...
- `columnWidth`:每列的宽度,默认单位为像素。 - `horizontalSpacing`/`verticalSpacing`:设置列间和行间的间距。 - `stretchMode`:设置如何拉伸单元格以填满整个GridView,可选`none`、`columnWidth`、`...
2. **尺寸单位**:避免使用绝对像素(px)来定义UI元素大小,而应使用相对单位如dp(与密度无关像素)和sp(用于字体大小,可缩放像素)。这样可以确保在不同屏幕尺寸上保持视觉一致性。 3. **布局权重**:在...
在Android中,可以使用Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 来实现DES加密。具体步骤包括:选择密钥、创建Cipher对象、加密原始图片字节流,并将结果保存为新的加密文件。 ...
� 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...
每个子视图使用`android:layout_column`和`android:layout_row`属性来定义其在网格中的位置。例如: ```xml android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_...
因此,在非ARM架构(如x86的PC)上开发针对Android平台的应用时,就需要使用交叉编译器来生成能在目标平台上运行的二进制文件。 **1.2 构建交叉编译环境** - **Linux环境下的交叉编译器构建:** - 可以自行构建一...
- 属性值为具体的像素值:例如`android:layout_marginLeft="10dp"`用于指定左边距。 **示例代码**: ```xml android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+id...
`android:lineSpacingExtra`直接添加固定像素值作为行间距,而`android:lineSpacingMultiplier`则允许你按比例增加行间距。这两个属性可以单独使用,也可以结合使用,以达到理想的效果。 对于列间隔,由于Android的...
9. **Intrinsic尺寸**:`android:layout_width`和`android:layout_height`分别定义了视图的宽度和高度,可以设置为`wrap_content`(根据内容自动调整大小)、`match_parent`(占据父视图的大小)或具体的像素值。...
在Activity中,你可以调用`getWindowManager().getDefaultDisplay().getMetrics(displayMetrics)`,然后`displayMetrics.widthPixels`和`heightPixels`是像素宽度和高度,`densityDpi`是密度dpi,`density`是每英寸...
如果需要处理复杂颜色的图片,可能需要使用更复杂的图像处理技术,例如像素操作或使用自定义Shader。 在实际开发中,可以考虑将上述步骤封装成一个函数,以便在多个地方重用。此外,如果需要频繁地改变图片颜色,...
在Android开发中,虽然使用FrameBuffer截图适用于研究和调试,但并不推荐在生产环境中使用。因为这种方法可能不兼容所有设备,且需要root权限,这会限制其应用范围。通常,Android SDK提供的官方API `Media...
- **响应式**:考虑不同屏幕尺寸和方向,使用比例值(dp)而不是固定像素,确保界面在各种设备上都能良好显示。 - **性能优化**:使用轻量级布局,例如替换LinearLayout为ConstraintLayout,使用`merge`标签减少视图...