测量单位 px、dip、dp 和 sp 的区别是什么?
当前回答
由官方文档复制的答案所列的 dp 和 sp 单元之间的差异可以通过更改“设置”>“可用性”>“长文本”选项在运行时看到。
大文本选项使文本变成1.3倍。
private static final float LARGE_FONT_SCALE = 1.3f;
这可能当然是供应商依赖的,因为它在包 / 应用程序 / 设置。
其他回答
SDP - 一个可扩展的尺寸单位 - 基本上它不是一个单位,而是不同屏幕大小的尺寸资源。
在 Intuit 中尝试 sdp 图书馆. 解决单位问题非常方便,您可以快速支持多个屏幕。
使用
android:paddingBottom="@dimen/_15sdp" for positive and android:layout_marginTop="@dimen/_minus10sdp" for negative sdp sdp
它在每个尺寸的值-sw<N>dp 文件夹(sw = 最小Width)中具有相当值。
注意
在大多数情况下,你仍然需要为平板电脑设计不同的布局。
例子
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_minus10sdp"
android:paddingBottom="@dimen/_15sdp"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="♡"
android:textColor="#ED6C27"
android:textSize="@dimen/_70sdp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="U"
android:textColor="@android:color/black"
android:textSize="@dimen/_70sdp" />
</LinearLayout>
你可以用db为文本大小,但我更喜欢ssp为文本大小。
更多详细信息请参阅图书馆 GitHub 页面。
屏幕大小 实际的物理大小,测量为屏幕的直径. 为了简单,Android将所有实际的屏幕大小组成四个通用大小:小,正常,大,和超大。 屏幕密度 屏幕的物理区域内的像素数量; 通常称为dpi(点每英寸)。 例如,一个“低”密度屏幕在特定物理区域内有较少的像素,比较
当添加多个屏幕支持时,应用程序不直接与分辨率工作;应用程序应仅涉及屏幕大小和密度,如一般化大小和密度组所规定的。
屏幕尺寸和密度
任何与文本和外观的尺寸相关的东西都必须使用 sp 或 pt. 因此,任何与控制器、布局等尺寸相关的东西都必须使用 dp。
您可以在其位置使用 dp 和 dip。
我将详细介绍如何准确地将 dp 转换为 px:
如果在 mdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 150 * 150 dp. 如果在 hdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 100 * 100 dp. 如果在 xhdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 75 * 75 dp.
相反的方式:说,你想添加一个图像到你的应用程序,你需要它填写一个100 * 100dp控制。
100 * 100 px 图像为 mdpi 150 * 150 px 图像为 hdpi 200 * 200 px 图像为 xhdpi
我只会使用DP。
有很多关于使用“sp”字体尺寸的谈话,虽然我欣赏这一点,我不认为这是从设计观点做正确的事情,你可以结束打破你的设计,如果用户有一些有趣的字体尺寸的选择,用户将最终责怪应用程序,而不是自己的生活选择。
此外,如果你在160dpi平板电脑上使用 sp-font 应用程序,你会发现一切都在扩展......但你的字体,这在比较中会看起来很小。
虽然“sp”字体的想法有一个好心,但这是一个糟糕的想法。
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列