Android 屏幕适配方案说明

概述

本项目已为Android应用创建了完整的屏幕适配方案,采用**数值递增**的dp和sp定义方式,每个数值在不同屏幕密度下都有对应的适配值。

📁 已创建的适配文件

1. 基础适配

  • values/dimens.xml - 标准屏幕适配(基准)

2. 屏幕尺寸适配

  • values-small/dimens.xml - 小屏幕设备适配(按0.75比例)

3. 屏幕密度适配

  • values-mdpi/dimens.xml - 160dpi(按0.85比例)
  • values-hdpi/dimens.xml - 240dpi(标准1:1比例)
  • values-xhdpi/dimens.xml - 320dpi(按1.1比例)
  • values-xxhdpi/dimens.xml - 480dpi(按1.2比例)
  • values-xxxhdpi/dimens.xml - 640dpi(按1.3比例)

4. 平板设备适配

  • values-sw600dp/dimens.xml - 7寸平板(按1.4比例)
  • values-sw720dp/dimens.xml - 10寸平板(按1.6比例)

📏 资源定义规范

DP尺寸定义(1dp-100dp)

<dimen name="dp_1">1dp</dimen>
<dimen name="dp_2">2dp</dimen>
<dimen name="dp_3">3dp</dimen>
...
<dimen name="dp_100">100dp</dimen>

SP文字尺寸定义(10sp-50sp)

<dimen name="sp_10">10sp</dimen>
<dimen name="sp_11">11sp</dimen>
<dimen name="sp_12">12sp</dimen>
...
<dimen name="sp_50">50sp</dimen>

🚀 使用方法

在布局文件中使用

<TextView
    android:layout_width="@dimen/dp_100"
    android:layout_height="@dimen/dp_50"
    android:textSize="@dimen/sp_16"
    android:layout_margin="@dimen/dp_16"
    android:padding="@dimen/dp_8" />

<Button
    android:layout_width="match_parent"
    android:layout_height="@dimen/dp_48"
    android:textSize="@dimen/sp_14" />

在代码中使用

// Kotlin
val buttonHeight = resources.getDimensionPixelSize(R.dimen.dp_48)
val textSize = resources.getDimension(R.dimen.sp_16)
val margin = resources.getDimensionPixelSize(R.dimen.dp_16)
// Java
int buttonHeight = getResources().getDimensionPixelSize(R.dimen.dp_48);
float textSize = getResources().getDimension(R.dimen.sp_16);
int margin = getResources().getDimensionPixelSize(R.dimen.dp_16);

📊 适配比例说明

密度/尺寸 比例 说明
values (基准) 1.0 标准尺寸
values-small 0.75 小屏幕缩小
values-mdpi 0.85 中密度略缩小
values-hdpi 1.0 高密度标准
values-xhdpi 1.1 超高密度放大
values-xxhdpi 1.2 超超高密度放大
values-xxxhdpi 1.3 超超超高密度放大
values-sw600dp 1.4 7寸平板放大
values-sw720dp 1.6 10寸平板放大

💡 使用建议

  1. 统一使用: 在项目中统一使用这套尺寸定义,避免硬编码数值
  2. 语义命名: 可以在此基础上定义语义化的尺寸别名
  3. 设计配合: 与UI设计师协调,使用标准化的尺寸规范
  4. 测试验证: 在不同设备上测试界面效果

🔧 扩展使用示例

定义语义化别名

<!-- 在 values/dimens.xml 中添加语义化定义 -->
<dimen name="button_height_normal">@dimen/dp_48</dimen>
<dimen name="text_size_normal">@dimen/sp_14</dimen>
<dimen name="margin_normal">@dimen/dp_16</dimen>
<dimen name="padding_normal">@dimen/dp_12</dimen>

常用组合建议

  • 小间距: dp_4, dp_8
  • 正常间距: dp_12, dp_16
  • 大间距: dp_24, dp_32
  • 按钮高度: dp_40, dp_48, dp_56
  • 文字大小: sp_12, sp_14, sp_16, sp_18

通过这套完整的数值递增适配方案,你的Android应用将能够在各种设备上实现精确的尺寸控制和一致的视觉效果!🎉